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

在twig运算符中防止引号转换为HTML实体,twig,Twig,以下内容不会将引号转换为HTML实体 {% for row in files %} <tr data-id="{{ row.id }}"><td>{{ row.name }}</td></tr> {% endfor %} {% for row in files %} <tr{{ row.id?' data-id="'~row.id~'"' }}><td>{{ row.name }}</td></t

以下内容不会将引号转换为HTML实体

{% for row in files %}
  <tr data-id="{{ row.id }}"><td>{{ row.name }}</td></tr>
{% endfor %}
{% for row in files %}
  <tr{{ row.id?' data-id="'~row.id~'"' }}><td>{{ row.name }}</td></tr>
{% endfor %}
{%用于文件中的行%}
{{row.name}
{%endfor%}
下面的将引号转换为HTML实体

{% for row in files %}
  <tr data-id="{{ row.id }}"><td>{{ row.name }}</td></tr>
{% endfor %}
{% for row in files %}
  <tr{{ row.id?' data-id="'~row.id~'"' }}><td>{{ row.name }}</td></tr>
{% endfor %}
{%用于文件中的行%}
{{row.name}
{%endfor%}

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

您应该尝试使用
|raw
过滤器(查看)。 这是因为一般来说,twig打印出来的所有内容都将被转义,以避免跨站点脚本编写之类的事情。对于像
{{'static value'}}
这样的完全静态的值,有一个例外,它不会被转义

在您的情况下,以下各项应起作用:

{% for row in files %}
  <tr{{ (row.id?' data-id="'~row.id~'"')|raw }}><td>{{ row.name }}</td></tr>
{% endfor %}
{%用于文件中的行%}
{{row.name}
{%endfor%}