Twig:如何在块标题中显示 html 内容


Twig: How to display html content in the block title

在我的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中看到测试是正确的。

您必须

使用 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:

test

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

2:测试

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

3:测试

删除<em></em>标记,仅显示文本。

您可以这样做来转义HTML

{% block title %}{{ announcement.title|e('html') }}{% endblock %}

尝试以下操作...

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