2012-05-03 18 views
2

フォームのエラーバブリングに問題があります。私は、このフィールドには、このようなバリデータを追加したいと思いsymfonyフォーム、エラーバブリング

$formBuilder->add('title','text', 
    'required' => true, 
    'error_bubbling' => false, 
    ) 
) 

:私の形で 1つのフィールドは、次のように定義されて

/** 
    * @Assert\True(message = "Bad title.") 
    */ 
public function getTitleCorrect() 
{ 
    /* ... */  
    return false; 
} 

それは大丈夫動作しますが、エラーメッセージが一番上に現れますフィールドの行ではなく、フォームの

Twigテンプレートでは、このエラーメッセージは{{form_errors(form)}}によってグローバルエラーとして表示されます。 {{form_errors(form.title)}}を使用すると、エラーが表示されません。

エラーの割り当てを変更するにはどうすればよいですか?

答えて

5

メッセージは、バリデーターが対応するプロパティーに接続されている場合にのみ、フィールドに添付されます。 バリデータがクラスのメソッドに添付されているため、エラーが実際にはグローバルです。

use ...\TitleValidator as AssertTitleValid; 

class MyEntity 
{ 
    /** 
    * @AssertTitleValid 
    */ 
    private $title; 
} 

そして、あなた自身のTitleValidatorクラスを作成します。そのような何かに

あなたはすべきです。