2012-03-10 2 views
0

В моем шаблоне формы:Настройка форм виджета в Symfony2/Twig

{% block field_label %} 
{% spaceless %} 
    <label {{ block('widget_attributes') }}></label> 
{% endspaceless %} 
{% endblock %} 

мне нужно добавить некоторые дополнительные class атрибуты и, конечно, показать этикетку (возможно, переведенный). Я обнаружил, что {{ block('widget_attributes') }} хранит string атрибутов фактической метки.

Любой шанс получить тип array, чтобы его легко изменить? Где я могу найти все имена block, чтобы настроить внешний вид в соответствии с моими потребностями? Спасибо за помощь.

ответ

1

Nevermind Notepad ++ помог мне найти файл:

vendor\symfony\src\Symfony\Bridge\Twig\Resources\views 

три типа этикетки определены:

{# Labels #} 

{% 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 %}>{{ label|trans }}</label> 
{% endspaceless %} 
{% endblock %} 

{% block field_label %} 
{% spaceless %} 
    {% set attr = attr|merge({'for': id}) %} 
    {{ block('generic_label') }} 
{% endspaceless %} 
{% endblock field_label %} 

{% block form_label %} 
{% spaceless %} 
    {{ block('generic_label') }} 
{% endspaceless %} 
{% endblock form_label %} 
Смежные вопросы