この質問は 別の質問 に似ています。そこで 解決策 CSSクラスを設定するために、FormBuilder :: add()への呼び出しの3番目のパラメーターにそれを追加することでした:
->add('title', null, array('attr' => array('class'=>'span2')))
残念ながら、これはCSSIDの設定には機能しません。私がする時
->add('title', null, array('attr' => array('id'=>'title-field')))
...これは無視されます。 IDはnamespace_formtype_fieldのようなもののままです。
CSS IDを設定するにはどうすればよいですか?
今では簡単な答えはないと確信しています。最も近いものは、実際には form theming を使用してマークアップを変更しているようです。ありがとう ミチ このように指してくれて。
次のように 'attributes'配列の外にIDを設定すると、twigでフィールドをレンダリングするときにそれを行うことができます。
{{ form_widget(form.field, { 'id': 'my_custom_id', 'attr': { 'class' : 'my_custom_class }} )}}
twigレベルでは、次のようにするだけです。
{{ form_widget(form. title, { 'id': 'title-field' }) }}
Symfony2.3.4でテスト済み
HTML要素は複数のIDを持つことができないため、Symfonyはすでにフォーム要素でIDを使用しているため、実行しようとしていることは不可能です。
これを解決する方法は、代わりにクラスを使用するようにJavaScriptを変更し、
->add('title', null, array(
'attr' => array(
'class'=>'title-field'
)
))
もう1つの方法は、JavaScriptが使用するIDをSymfonyのIDに変更することです。