私はSymfony2を学んでいます。現在、小枝テンプレートでフォームラベルをレンダリングしようとしています。ラベルにhtmlタグが含まれていますが、これは私の小枝ファイルでは正しくレンダリングされていません。
フォームフィールドが作成されるコードは次のとおりです。
$builder->add('zipcode', 'integer', array(
'label' => '<abbr title="Zone Improvement Plan">CAP</abbr> code',
));
小枝ファイルで、フィールドラベルを次のようにレンダリングします。
{{ form_label(form.zipcode) }}
raw、escape、eフィルターを試しましたが、htmlページに表示される結果は常に文字列です。
<abbr title="Zone Improvement Plan">CAP</abbr> code
対応するHTMLコードではありません!
なにか提案を?前もって感謝します!
後で私は解決策を見つけました。解決策は、パスでSymfonyによって提供されるラベルブロック内の自動エスケープを無効にすることです:symfony / src / Symfony / Bridge / Twig / Resources / views / Form / form_div_layout.html.twig
したがって、twigファイルでは、フォームの外側に次の行を配置する必要があります。{%form_theme form _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 %}