Я пытаюсь переопределить расширение 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 здесь.