65

inを使用してHTML class属性をフォームに設定するにはどうすればよいですか?<input>FormBuilderSymfony2

このようなもの:

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array(
          'class' => 'calendar'
      )
 ))

 {{ form_widget(form.birthdate) }}

カレンダーに設定されinputた属性を持つこのフィールドが必要ですclass

4

8 に答える 8

121

小枝テンプレートからこれを行うことができます:

{{ form_widget(form.birthdate, { 'attr': {'class': 'calendar'} }) }}

http://symfony.com/doc/current/book/forms.html#rendering-each-field-by-handから

于 2011-07-18T16:26:45.827 に答える
114

FormBuilder でそれを行うことができます。これを FormBuilder の配列に追加します。

'attr'=> array('class'=>'span2')
于 2012-03-13T12:56:24.730 に答える
30

コントローラ内で属性を設定したい場合、Acyraによる答えは正しい方法を導きますが、多くの不正確さがあります。

はい、次のようにオプションの配列にattr属性(2.1バージョンではここに導入され、2.0ではここに導入されています)を使用して、FormBuilderで直接実行できます。

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array('class'=>'calendar')
 ))

「機能が壊れている」というのは真実ではありません。それは非常にうまくいきます!

Symfony2がHTMLclass属性をラベルと入力の両方に適用するというのは真実ではありません(少なくとも2.1バージョンから)。

さらに、attr属性は配列自体であるため、フィールドにレンダリングする任意のHTML属性を渡すことができます。data-HTML5属性を渡したい場合に非常に役立ちます。

于 2012-11-13T10:20:12.700 に答える
4
{{ form_widget(form.content, { 'attr': {'class': 'tinyMCE', 'data-theme': 'advanced'} })  }}
于 2015-12-10T06:02:51.033 に答える
3

このような:

{{ form_widget(form.description, { 'attr': {'class': 'form-control', 'rows': '5', 'style': 'resize:none;'} }) }}
于 2016-05-20T09:47:05.977 に答える