私のフォームにはフィールドentity
があります。フォームの送信時にそのエンティティの検証を無効にするにはどうすればよいですか?このエンティティはすでにデータベースに保持されているため、バリデータが自分の視点からこのエンティティを検証する必要はありません。エンティティフォームフィールドと検証はSymfony2でですか?
EDIT:
コードは次のようになります。
class SearchRequest
{
/**
* @ORM\ManyToOne(targetEntity="ArticlePattern")
* @ORM\JoinColumn(name="article_pattern_id", onDelete="CASCADE")
* @Assert\NotBlank
*/
private $articlePattern;
}
フォームフィールド:
$builder
->add('articlePattern', 'entity', array('class' => 'LonbitItssBundle:ArticlePattern')
検証グループは動作しませんが私が達成したいことのバリデータ用であるため、 $articlePattern
フィールドの制約@Assert\NotBlank
を確認してください。しかし、私は彼がcで定義された制約をチェックしないようにしますぼんやりしたArticlePattern。つまり、バリデーターが$ articlePatternオブジェクト内で降下しないようにしたいのですが、$ articlePatternフィールド自体に置かれた制約を検証する必要があります。
どうすればいいですか?
EDIT2:
検証グループはに動作します。だから、最終的な解決策は、このように、SearchRequestクラスのすべてのフィールドアサーションに(グループの名前は任意)groups={"search_request"}
制約オプションを追加することです:
/**
* @Assert\NotBlank(groups={"search_request"})
*/
private $articlePattern;
その方法は、検証は彼らを想定した(関連オブジェクトに降りません所属しない - この場合は "search_request"グループ)。
フィールドを 'disabled'または' readonly'として設定するのはどうですか? – jere