我有一个symfony的形式,我需要触发一个@Assert\NotBlank
只有当$receiverNewsletter
如果不是空白。
/**
* @var string
*
* @Assert\NotBlank
* @Assert\Email
*
* @ORM\Column(name="email", type="string", length=190)
*/
private $email;
/**
* @var bool
*
* @ORM\Column(name="receiveNewsletter", type="boolean")
*/
private $receiveNewsletter;
我的表格的一部分:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('receiveNewsletter', CheckboxType::class, ['label' => 'form.label.receiveNewsletter'])
->add('email', EmailType::class, ['label' => 'form.label.email', 'required' => false])
}
知道如何使用有效负载来说明如果 receiveNewsletter 不为空,然后在电子邮件字段上触发 NotBlank 验证吗?
您可以Expression
为此特定功能使用约束。它没有NotBlank
专门使用,但我发现它更优雅的解决方案。
use Symfony\Component\Validator\Constraints as Assert;
/**
* @Assert\Expression(
* "(this.getReceiveNewsletter() and this.getEmail()) or !this.getReceiveNewsletter()",
* message="Email cannot be empty when Receive Newsletter is marked"
* )
*/
class Entity
{
...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句