2016-03-03 53 views
1

我正在使用Symfony \ Component \ Validator \ Constraints as Assert驗證字段的值。如何爲@ Assert EqualTo驗證字段實體使用多個值

問題是我需要爲我的實體的此字段接受兩個或多個值。

/** 
* @var integer 
* @Assert\EqualTo(
*  value=1, 
*  message="Invalid State", 
*  groups={"Update"} 
*) 
* @Column(name="pgsStatus", type="integer") 
*/ 
private $status; 

它的工作完美,但我想這樣的事情

/** 
* @var integer 
* @Assert\EqualTo(
*  value={1,11}, 
*  message="Invalid State", 
*  groups={"Update"} 
*) 
* @Column(name="pgsStatus", type="integer") 
*/ 
private $status; 

或本

/** 
* @var integer 
* @Assert\EqualTo(
*  value=1, 
*  message="Invalid State", 
*  groups={"Update"} 
*) 
* @Assert\EqualTo(
*  value=11, 
*  message="Invalid State", 
*  groups={"Update"} 
*) 
* @Column(name="pgsStatus", type="integer") 
*/ 
private $status; 

並不起作用。 我看過文檔,我沒有找到另一個驗證或另一種方式來做到這一點。

謝謝!

+0

您可以使用[自定義驗證約束(http://symfony.com/ doc/current/cookbook/validation/custom_constraint.html) – takeit

回答

0

Choice Validator是去這裏的路:

/** 
* @var integer 
* @Assert\Choice(
*  choices={1,11}, 
*  groups={"Update"} 
*) 
* @Column(name="pgsStatus", type="integer") 
*/ 
+0

謝謝... !! 我沒有嘗試過,因爲我認爲不適用於我的類型字段。所以noob :( –

+0

gee,我想我先給出了相同的答案。:-( – craigh

+0

@craigh在我的時間線上先出現了這個答案,並進一步指定了代碼解決方案 你的答案也不錯,我不能把投票,但你應該贏得聲望,謝謝! –