有人知道如何通过断言在实体中执行此操作吗?
如果电子邮件和号码是空的那么返回错误=> '两个字段中的一个必须不是空的' 因此,其他断言有效
代码:
/**
* @ORM\Column(name="email", nullable=true, type="string")
* @Assert\Email(
* message = "The email '{{ value }}' is not a valid email.",
* checkMX = true
* )
*/
private $email;
/**
* @ORM\Column(name="phone", nullable=true, type="string")
* @Assert\Regex(
* "/48[0-9]{9}/", message="Wrong number format"
* )
*/
private $phone;
答案 0 :(得分:1)
这是使用验证字段条件的方法的例子:
/**
* @var boolean
*
* @Solr\Field(type="boolean")
* @ORM\Column(name="professionel", type="boolean")
*/
private $professionel;
/**
* @Assert\IsTrue(message = "Type d'actualité invalide")
*/
public function isValidprofessionel()
{
if (!$this->professionel && !$this->particulier) {
return 0;
} else {
return 1;
}
}
我希望有所帮助!
答案 1 :(得分:1)
/**
* @Assert\Expression(
* "!this.getEmail() && !this.getPhone()",
* message="Please, enter email or phone."
* )
*/
class Entity
{
// ...
}
http://symfony.com/doc/current/reference/constraints/Expression.html
答案 2 :(得分:0)
您还可以为整个班级创建自定义验证器。这是一个symfony教程。 http://symfony.com/doc/current/validation/custom_constraint.html