在我的symfony2项目中,我有一些twig temlates。 在其中一个中,我有块标题。
{% 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中,我看到 test 是正确的。
答案 0 :(得分:4)
您必须使用raw
filter按原样显示文本和标签:
{% block title %}{{ announcement.title|raw }}{% endblock %}
编辑:striptags
filter用于显示没有标记的文字:
{% block title %}{{ announcement.title|striptags }}{% endblock %}
{% set str = '<em>test</em>' %}
1: {{ str }}
2: {{ str|raw }}
3: {{ str|striptags }}
1:&lt; em&gt; test&lt; / em&gt;
<em></em>
代码已转义。
2: test
浏览器显示并解释<em></em>
标记。
3:测试
删除<em></em>
标记,仅显示文字。
答案 1 :(得分:0)
您可以执行此操作以转义HTML
:
{% block title %}{{ announcement.title|e('html') }}{% endblock %}
答案 2 :(得分:0)
试试以下......
{% block title %}{{ announcement.title|raw }}{% endblock %}