1

在我的 symfony2 项目中,我有一些树枝模板。在其中一个中,我有块标题。

{% block title %}{{ announcement.title }}{% endblock %}

问题是变量{{ announcement.title }}可以是:<em>test</em>

在这种情况下,我的头衔将是<em>test</em>并且它需要是

测试

我试过了,{% block title %}{{ announcement.title|raw }}{% endblock %}但没有任何改变。这只是在块标题中,如果我将原始过滤器放在我的块内容中,那就没问题了。

关于如何做到这一点的任何想法?

编辑:

这是一个例子:

{% block title %}{{ announcement.title|raw }}{% endblock %}
{% block body_announcements %}{{ announcement.title|raw }}{% endblock %}

在块标题中,我看到<em>test<em>并且在块 body_announcements 中我看到测试是正确的。

4

3 回答 3

4

您必须使用raw过滤器按原样显示文本和标签:

{% block title %}{{ announcement.title|raw }}{% endblock %}

编辑:striptags过滤器用于显示没有标签的文本:

{% block title %}{{ announcement.title|striptags }}{% endblock %}

例子

树枝代码

{% set str = '<em>test</em>' %}
1: {{ str }}
2: {{ str|raw }}
3: {{ str|striptags }}

结果

1:<em>测试</em>

<em></em>标签被转义。

2:测试

<em></em>标签由浏览器显示和解释。

3:测试

<em></em>标签被删除,只显示文本。

于 2013-10-30T09:58:53.997 回答
0

你可以这样做来逃避HTML

{% block title %}{{ announcement.title|e('html') }}{% endblock %}
于 2013-10-30T10:00:42.733 回答
0

尝试跟随...

{% block title %}{{ announcement.title|raw }}{% endblock %}
于 2013-10-30T10:02:51.560 回答