Обновление с 2.0 до 2.1: Класс для ‹label› теряется по пути

Я только что обновил symfony2 с 2.0.16 до 2.1.2, и теперь у меня проблема, что мой класс для метки не т добавлено больше.

В шаблоне Twig я включаю поле следующим образом:

<div class="row{% if form_errors(form.object) %} _error{% endif %}">
    {{ form_label(form.object, null, { 'attr': {'class': '_hint'} }) }}
    {{ form_widget(form.object, { 'attr': {'class': 'c6'} }) }}
</div>

И мое расширение макета формы по умолчанию выглядит так:

{% use 'form_div_layout.html.twig' with field_label as base_field_label %}

{% block field_label %}
    {{ block('base_field_label') }}

    {% if attr.class is defined and '_hint' == attr.class %}
        <div>
            some
        </div>
    {% endif %}
{% endblock %}

Странно то, что значение attr.class устанавливается при рендеринге <div>. Но класс больше не добавляется в <label>.


person insertusernamehere    schedule 22.10.2012    source источник


Ответы (1)


  1. вам следует перезаписать блок form_label вместо field_label, потому что field_label устарело
  2. Вы должны использовать массив label_attr вместо attr, т.е.:

    {% if label_attr.class is defined and '_hint' == label_attr.class %}
    
person Mikhail    schedule 22.10.2012
comment
+1 Сработало отлично, и спасибо, что добавили информацию об устаревших частях. - person insertusernamehere; 25.10.2012