チェックボックスがオンの場合(@ updateEmailCheckBox)に限り、@Assert \ NotBlankと@Assert \ Emailを使用してメールエンティティを検証します。 これらのアサートは電子メールフィールドの注釈で定義されているため、チェックボックスがオンになっていない場合でも検証が行われます。ここでSymfony:チェックボックスが選択されているときにフィールドを検証します
は私のユーザーenityの抜粋です:
/**
* Update email checkbox entity
*/
private $updateEmailCheckBox;
/**
* @var string
* @Assert\NotBlank(message="Email can't be empty")
* @Assert\Email(message="Wrong email pattern")
*/
private $email;
/**
* @Assert\Callback
*/
public function validate(ExecutionContextInterface $context)
{
/**
* If update email checkbox is checked
*/
if ($this->getUpdateEmailCheckBox() == 1)
{
// how to validate here an email field for Assert\NotBlank and Assert\Email ?
}
}
私はチェックボックスは、コールバックを使用してチェックされているかどうかを確認することができますが、私はNotBlankや電子メールの検証を有効にする方法を見つけ出すことはできません、との場合、制約違反は対応するエラーを返します。
ありがとうございました!私のアプローチは完全に間違っているようです:) – rvaliev