2012-03-13 17 views
2

フィールドがurlのエンティティがあります。このエンティティは、同じエンティティに基づいてフォームを送信するデータベースupponに永続化されています。Symfony 2:フォーム内のDoctrine制約

NotBlankUrlのようなカスタムメッセージと一緒に、validation.ymlのフォームタイプに制約を設定できます。それは大丈夫です。しかし、すでにDBに存在するエンティティを永続化しようとすると、値がすでに存在しているというエラーが表示されます(url)。

このUniqueEntityの制約にカスタムメッセージを設定するにはどうすればよいですか?

validation.ymlにUniqueEntityを追加しようとしましたが、別の名前空間にあり、動作や設定方法を理解できません。デフォルトでは、urlは元のエンティティアノテーションの一意のフィールドとして定義されていますが、エラーメッセージの変更方法は?

答えて

2

私は自分自身の問題に対する解決策を見つけました。

validation.ymlですべてのバリデーションを定義できますが、私はエンティティを定義するためにアノテーションを使用しているので、すべてのバリデーションやメッセージなどをそれらのアノテーションの中に入れる方が良いでしょう。

ブランクでないフィールドには@Assert\NotBlankを、ユニークな検証には@ORM\UniqueEntity(message="my custom error")を設定するだけで十分でした。

は、私は私の質問にサイトを溢れさせるため申し訳ありませんが、私は誰かがこの便利な..

P.S:注釈を見つけるかもしれないか、YMLは、セットアップが同じで、違いはありません願っています。私が思う私の場合には、それが何かのようにされている必要があります:

Namespace\Class: 
    constraints: 
     - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: 
      fields: url 
      message: "My custom message" 

それで非常に柔軟、私は異なるフィールドが既にDBに存在しているならば、我々は異なるメッセージを設定することができるか見ないと思った...

関連する問題