2016-05-30 6 views
0

リクエストから情報が移入されたかどうかに基づいて、特定のクラスを選択フィールドに追加したいと思います。具体的にはフィルタフォームですこれは、フォームがUXの機能として送信されると、どのフィルタが埋め込まれたかを示すはずです。私は小枝で直接form.fieldname.vars.dataのプロパティをチェックし、クラスを手動で設定することでそれを直接行うことができることを知っていますが、これを達成する最もエレガントな/容易な方法ですか?Symfonyフォーム - 利用可能な入力データに基づいてフィールドクラスを変更する

+0

:ビューから別のロジックを保ちます。 – DonCallisto

答えて

0

私が理解から、フォームを構築しながら、PHP側ではので、これは、行うことがより適して次のようになります。私見小枝やJavaScriptでそれを行う

#determine css class 
if($something_or_other) { 
    $css_class = 'my_class'; 
} 

$builder->add(
    'input_1', 
    ChoiceType::class, #depending on your SF2 version, this will differ 
    [ 
     'attr' => ['class' => $css_class] 
    ] 
) 
+0

これはフォームタイプの中で最も適していますか? –

+0

個人的には、これを行うメソッドを持つUtilクラスがあります。これはコントローラから呼び出すことができ、インスタンス化するときにクラスをフォームタイプに送ることができます。 – Alec

+0

コメントのある行は間違っています:これを行うには、一重引用符を削除してください。 – DonCallisto

関連する問題