2012年5月2日水曜日

Formのwidget個々のカスタマイズ

Formのwidgetには、choice, time, number ..... のように、いくつか用意されています。 詳しくは コチラ (symfony日本語ドキュメント) で, templateで出力する際は

{{ 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 %}
みたいな感じで、テンプレートをカスタマイズできます。 これは、テンプレートのデフォルトのテーマをカスタマイズって形をとっていて、その元となるテンプレートは vendor/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig にありますので、これを見ながらカスタマイズすればOK.

0 コメント:

コメントを投稿

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More