twig autoescaping html标签

时间:2014-01-16 01:41:17

标签: html symfony escaping twig

{% autoescape false %}
{% set label = '<i class="flaticon solid plus-1"></i>Add User'|raw %}
{{ form_row(form.submit, { 'label': label }) }}
{% endautoescape %}

这是输出

&lt;i class="flaticon solid plus-1"&gt;&lt;/i&gt;Add User

如何让它逃脱?如果我只打印标签而不是将其作为参数提供给“form_row”函数,它会正确打印出来。

2 个答案:

答案 0 :(得分:1)

您在错误的位置使用|raw过滤器 - 仅在输出数据时处理,而不是在设置变量时处理。您应该将其修补到form_row函数中,或将其附加到它的调用中 - 如果不知道该函数的工作方式,则无法确定。

很可能这会解决它:

{{ form_row(form.submit, { 'label': label })|raw }}

因为我假设它返回修改后的字符串并让{{标签处理输出。

答案 1 :(得分:0)

在form_div_layout.html.twig

更改

<button type="{{ type|default('button') }}" {{ block('button_attributes') }}>{{ label|trans({}, translation_domain) }}</button>

<button type="{{ type|default('button') }}" {{ block('button_attributes') }}>{{ label|trans({}, translation_domain)|raw }}</button>

这似乎是一个hacky解决方案,因为我正在修改vendor文件夹中的内容。