防止在twig三元运算符中将引号转换为HTML实体

时间:2016-07-20 17:03:35

标签: twig

以下将引号转换为HTML实体

{% for row in files %}
  <tr data-id="{{ row.id }}"><td>{{ row.name }}</td></tr>
{% endfor %}

以下 将引号转换为HTML实体

{% for row in files %}
  <tr{{ row.id?' data-id="'~row.id~'"' }}><td>{{ row.name }}</td></tr>
{% endfor %}

如何防止在twig三元运算符中将引号转换为HTML实体?

1 个答案:

答案 0 :(得分:2)

您应该尝试|raw过滤器(请查看documentation)。 这是因为通常,twig打印出的所有内容都将被转义以避免跨站点脚本等内容。对于{{ '<b>static value</b>' }}之类的完全静态值,例外情况不会被转义。

在您的情况下,以下内容应该有效:

{% for row in files %}
  <tr{{ (row.id?' data-id="'~row.id~'"')|raw }}><td>{{ row.name }}</td></tr>
{% endfor %}