2017-03-23 10 views
1

誰かがアサーションでエンティティでそれを行う方法を知っていますか?Symfonyエンティティ注釈アサート2つのうちの1つがnullでない必要があります

電子メールや番号が空の場合、返すエラー=>他のことで、有効なELSE が主張する「二つのフィールドのいずれかが空であってはならないこと」

コード:これはのexempleある

/** 
* @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()またはthis.getPhone()"、 * message = "is_empty.email_and_phone" *) –

関連する問題