Twig Form Theming - атрибут класса form_label

Я пытаюсь переопределить расширение form_row Twig, чтобы я мог отобразить строку стиля Bootstrap Twitter. Строка форматирования twitter должна выглядеть следующим образом:

<div class="control-group">
    <label class="control-label" for="idOfMainInput">Label Name:</label>
    <div class="controls">
        <input type="text" id="idOfMainInput" name="someDumbName">
    </div>
</div>

Базовый блок form_row div div div определяется в этой ссылке, как показано ниже:

{% block form_row %}
{% spaceless %}
    <div>
        {{ form_label(form) }}
        {{ form_errors(form) }}
        {{ form_widget(form) }}
    </div>
{% endspaceless %}
{% endblock form_row %}

Итак, мои мысли состояли в том, чтобы просто поместить необходимые divs и жесткий код, где необходимо, записи классов (т.е. в главном div), но передать значение "attr" в секции form_label, form_errors и form_widget. На данный момент я вынул form_errors, так что я не слишком углубляюсь в него. Вот что я пробовал:

{% form_theme form _self %}
{% block form_row %}
{% spaceless %}
<div class="control-group">
    {{ form_label(form, 'test label name', { 'attr': {'class': 'control-label'} }) }}
    <div class="controls">
    {{ form_widget(form) }}
    {{ form_errors(form) }}
    </div>
</div>
{% endspaceless %}
{% endblock form_row %}

Проблема, однако, неважно, что я пытаюсь, расширение form_label не использует "control-label" как мой класс (и в соответствии с исходным кодом добавьте его, если существуют существующие, например "обязательные" ), Вот то, что я получаю, когда просматриваю источник рендеринговой страницы:

<div class="control-group">
    <label for="form_rsa_id" class="required">test label name</label>
    <div class="controls">
        <input type="number" id="form_rsa_id" name="form[rsa_id]" required="required" />
    </div>
</div>

Как вы можете видеть, class= "требуется" есть и берется из атрибутов объекта базовой формы, но это должен быть class= "требуемый контрольный ярлык", а это не так.

Вроде бы, если в документации (а также в источнике) указывается, что следует использовать обозначение "form_label (view, label, variables)". Ссылка на docs здесь.

Ответ 1

Я думаю, вам нужно использовать label_attr, а не attr.

Ответ 2

Для тех, кто все еще хочет это сделать, Symfony 2.6 поставляется с темой формы Bootstrap, которая сделает это за вас.