2016-03-24 8 views
3

form_widget()関数を呼び出すときに、twigで既存のクラスにクラスを追加したいので、それらをマージしたいと思います。私はすでにコントローラによってそれに接続されているいくつかのクラスを持つオブジェクトにform_widget:既存のクラスにクラスを追加する

{{ form_widget(form.field1), {'attr': {'class': 'foo'}} }} 

を使用する場合でも、それはクラス(複数可)を追加しないんが、は彼ら置き換えます。 documantationによれば、これは

は、ウィジェットをレンダリングするだろうが、それ

に「foo」というクラスを追加します。しかし、製剤は、クラスが実際に「追加」された場合、程度は明らかではない場合、または彼らは置き換えられます。

既存の属性/クラスにアクセスして、追加したい属性/クラスと一緒にマージする方法が必要なようです。どうすればこれを達成できますか?

答えて

2

form.field1.vars.attr.classなどを使用してstr1 ~ str2のように、すでに指定されているクラスと新しいクラスをマージすることができます。一緒にすべてを置く

あなたが得る:

{{ form_widget(form.field1), {'attr': {'class': form.field1.vars.attr.class ~ foo'}} }}

これが動作し、あなたの問題を解決します。いくつかの背景:

symfony documentation form.field1.vars.attrによるとclass -keyと、キーベースの配列です。 このように、既存のすべてのクラスにアクセスできます。

関連する問題