繁体   English   中英

symfony组验证如何工作

[英]How does the symfony groups validation work

对于symfony组验证,我有点困惑。

假设我有这段代码

 * @NotBlank(groups={"A", "B", "C"})
 */
private $description;

当我提交表单时,我会手动注入这样的组

$this->validator->validate($object, groups={"F", "A","C"})

现在我想知道symfony将如何进行验证

  1. symfony是否检查所有组,即F,A,C应该与A,B,C配对,还是检查F,A,C是否有任何组存在于已定义的组A,B,C中。 因此,如果有任何项目,则可以进行验证

如果查看validate()方法签名 ,您可能会理解,不应将$groups参数视为允许您注入验证组的参数。

它用于要求您的验证器针对某些约束组验证给定的对象。

使用示例,

/*
 * @NotBlank(groups={"A", "B"})
 */
private $property1;

/*
 * @NotBlank(groups={"C"})
 */
private $property2;

/*
 * @NotBlank(groups={"B"})
 */
private $property3;

然后,

$this->validator->validate($object, groups={"A", "C"})

将针对NotBlank约束来验证您的property1property2

但是打电话的时候

$this->validator->validate($object, groups={"A", "B"})

由于未调用group C仅再次验证了property1property3和NotBlank约束。

Symfony列出了F, A, C组中的所有约束F, A, C并将其应用于您的数据。 如果约束在2个或更多组中,则将仅应用一次。

因此,关于您的示例,应在$ description字段上应用NotBlank约束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM