2017-03-23 59 views
1

做一個人知道如何通過斷言來實現嗎?Symfony實體註釋聲明其中一個必須不爲空

IF電子郵件和電話號碼爲空,則返回錯誤=>「兩個領域中的一個必須是不是空的」 ELSE其他THEN有效斷言

代碼:

/** 
* @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; 

回答

1

這是個例使用一種方法來驗證您的條件在fild上:

/** 
* @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
/** 
* @Assert\Expression(
*  "!this.getEmail() && !this.getPhone()", 
*  message="Please, enter email or phone." 
*) 
*/ 
class Entity 
{ 
    // ... 
} 

http://symfony.com/doc/current/reference/constraints/Expression.html

+0

這很酷!謝謝:)但很好的方式是經過小小的修改: * @Assert \ Expression( *「this.getEmail()or this.getPhone()」, * message =「is_empty.email_and_phone」 *) –