如何为@Assert \ EqualTo验证字段实体使用多个值

时间:2016-03-03 20:01:11

标签: validation symfony annotations entity assert

我使用 Symfony \ Component \ Validator \ Constraints as Assert 验证字段的值。

问题是我需要为我的实体的这个字段接受两个以上的值。

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

并且不起作用。 我查看了文档,但我没有找到其他验证或其他方式。

谢谢!

2 个答案:

答案 0 :(得分:1)

可能使用Choice验证程序或使用Callback验证程序

答案 1 :(得分:0)

Choice Validator是要走的路:

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