2012年5月2日水曜日

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

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

  1. {{ form_widget(form.fieldname) }}   
みたいにやります。 そうすると、
みたいな感じで表示されます。 ですが、
みたく、縦並びにしたいとかって、レイアウトをwidgetごとに変更したいときってありますよね。 そんなときは、
  1. {% form_theme form _self %}  
  2. {% block _[formtype名]_[フィールド名]_widget %}  
  3. {% spaceless %}  
  4.     <div {{ block('widget_container_attributes') }}>  
  5.     {% for child in form %}  
  6.      <div> {# 追加!!!!!! #}  
  7.             {{ form_widget(child) }}  
  8.             {{ form_label(child) }}  
  9.      </div> {# 追加!!!!!! #}  
  10.     {% endfor %}  
  11.     </div>  
  12. {% endspaceless %}  
  13. {% 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