2012-08-29 15 views
20

symfonyフォームで複雑な検証が行われていて、コントローラから特定のフィールドにエラーを割り当てる必要があります。今のところ、グローバルエラーは次のようになります。symfony2のコントローラからフィールド固有のエラーを追加する

$error = new formerror("There is an error with the form"); 
$form->addError($error); 

しかし、これはグローバルエラーを生成し、特定のフィールドにバインドされていません。

コントローラから特定のフィールドにエラーをスローする方法はありますか?

答えて

44

IRCの助けを借りてありがとう(感謝@fkrauthan!)私は答えを思いついた。

SF2の各フィールドは、実際にはフォームのインスタンスです。あなたがしなければならないことは、フィールドのフォームオブジェクトにアクセスし、それにエラーを追加することです。ありがたいことに、symfonyは埋め込みフォーム/フィールドを取得する方法を提供しています。

HERESに私のコード:

$error = new FormError("There is an error with the field"); 
$form->get('field')->addError($error); 

一部の人が指摘したように、あなたは、ファイルの先頭にFormErrorクラスを含める必要があります。 use Symfony\Component\Form\FormError;

+0

ナイス! :)あなたはあなたの答えを受け入れることができますか? –

+0

スタックオーバーフローでは、最初の2日間は自分の回答を受け入れることはできません。 – MrGlass

+0

ああ、そうです。 )あとでやるのを忘れないでください; –

関連する問題