特定のフォームウィジェットタイプの行のブロックを定義することができます{% block checkbox_row %}
。私はここでこれを発見しました:http: //forum.symfony-project.org/viewtopic.php? f = 23&t = 57986#p153546
チェックボックスのウィジェットの周りにラベルをラップするために必要なのは、次のとおりです。
{% block checkbox_row %}
{% spaceless %}
<div>
{% if not compound %}
{% set label_attr = label_attr|merge({'for': id}) %}
{% endif %}
{% if required %}
{% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
{% endif %}
<label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }}
{{ form_widget(form) }}
{% if label is empty %}
{% set label = name|humanize %}
{% endif %}
</label>
{{ form_errors(form) }}
</div>
{% endspaceless %}
{% endblock checkbox_row %}
ラベルコードはからコピーアンドペーストされてい{% block form_label %}
ます。ZurbのFoundationフレームワークを使用しているため、ウィジェットの下にフォームエラーを配置しました。
{% block radio_row %}
ラジオボタンのコードは、存在しないように見えるため、より複雑です。そのため、Whistlegregのアドバイスを受けて、{% block choice_widget %}
ブロックを編集する必要があります。Symfony2.1では、実際には{% block choice_widget_expanded %}
。これが私のコードです:
{% block choice_widget_expanded %}
{% spaceless %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
{% set child_label = child.get('label') %}
{% if child_label is not sameas(false) %}
{% set child_id = child.get('id') %}
{% set child_compound = child.get('compound') %}
{% set child_required = child.get('required') %}
{% set child_label_attr = child.get('label_attr') %}
{% if not child_compound %}
{% set child_label_attr = child_label_attr|merge({'for': child_id}) %}
{% endif %}
{% if child_required %}
{% set child_label_attr = child_label_attr|merge({'class': (child_label_attr.class|default('') ~ ' required')|trim}) %}
{% endif %}
<label{% for attrname, attrvalue in child_label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>
{% endif %}
{{ form_widget(child) }}
{% if child_label is not sameas(false) %}
{% if child_label is empty %}
{% set child_label = name|humanize %}
{% endif %}
{{ child_label|trans({}, translation_domain) }}
</label>
{% endif %}
{% endfor %}
</div>
{% endspaceless %}
{% endblock choice_widget_expanded %}
Symfony2.1.9DEVでテストおよび動作しています。