我正在学习 Symfony2。目前,我正在尝试在树枝模板中渲染表单标签。该标签包含一个 html 标签,该标签在我的 twig 文件中未正确呈现。
下面是创建表单字段的代码段:
$builder->add('zipcode', 'integer', array(
'label' => '<abbr title="Zone Improvement Plan">CAP</abbr> code',
));
在 twig 文件中,我渲染字段标签如下:
{{ form_label(form.zipcode) }}
我尝试了 raw、escape、e 过滤器,但我的 html 页面中提供的结果始终是字符串
<abbr title="Zone Improvement Plan">CAP</abbr> code
而不是相应的HTML代码!
有什么建议吗?
提前致谢!
后来我找到了解决办法。
解决方案是在路径中禁用 Symfony 提供的标签块内的自动转义:
symfony / src / Symfony / Bridge / Twig /资源/视图/表单/form_div_layout.html.twig
因此,在您的 twig 文件中,您必须将以下行放在表单之外:
{% form_theme 表单_self %}
{% block generic_label %}
{% spaceless %}
{% if required %}
{% set attr = attr|merge({'class': attr.class|default('') ~ ' required'}) %}
{% endif %}
<label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>{% autoescape false %}{{ label|trans }}{% endautoescape %}</label>
{% endspaceless %}
{% endblock %}