Formのwidgetには、choice, time, number ..... のように、いくつか用意されています。
詳しくは コチラ (symfony日本語ドキュメント)
で, templateで出力する際は
- {{ form_widget(form.fieldname) }}
{{ form_widget(form.fieldname) }}
みたいにやります。
そうすると、
みたいな感じで表示されます。
ですが、
みたく、縦並びにしたいとかって、レイアウトをwidgetごとに変更したいときってありますよね。
そんなときは、
- {% form_theme form _self %}
- {% block _[formtype名]_[フィールド名]_widget %}
- {% spaceless %}
- <div {{ block('widget_container_attributes') }}>
- {% for child in form %}
- <div> {# 追加!!!!!! #}
- {{ form_widget(child) }}
- {{ form_label(child) }}
- </div> {# 追加!!!!!! #}
- {% endfor %}
- </div>
- {% endspaceless %}
- {% endblock _recallItem_is_new_widget %}
{% form_theme form _self %}
{% block _[formtype名]_[フィールド名]_widget %}
{% spaceless %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
<div> {# 追加!!!!!! #}
{{ form_widget(child) }}
{{ form_label(child) }}
</div> {# 追加!!!!!! #}
{% endfor %}
</div>
{% endspaceless %}
{% endblock _recallItem_is_new_widget %}
みたいな感じで、テンプレートをカスタマイズできます。
これは、テンプレートのデフォルトのテーマをカスタマイズって形をとっていて、その元となるテンプレートは
vendor/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
にありますので、これを見ながらカスタマイズすればOK.
0 コメント:
コメントを投稿