Я изучаю 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 %}