3

フォームのエラー バブリングに問題があります。私のフォームの 1 つのフィールドは、次のように定義されています。

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

このフィールドに次のようなバリデータを追加したいと思います。

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

問題なく動作しますが、フィールド行ではなく、フォームの上にエラー メッセージが表示されます。

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

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

4

2 に答える 2

5

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

あなたはそのようなものにする必要があります:

use ...\TitleValidator as AssertTitleValid;

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

独自の TitleValidator クラスを作成します。

于 2012-05-04T08:55:00.333 に答える