[英]How does the symfony groups validation work
对于symfony组验证,我有点困惑。
假设我有这段代码
* @NotBlank(groups={"A", "B", "C"})
*/
private $description;
当我提交表单时,我会手动注入这样的组
$this->validator->validate($object, groups={"F", "A","C"})
现在我想知道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
约束来验证您的property1
和property2
。
但是打电话的时候
$this->validator->validate($object, groups={"A", "B"})
由于未调用group C
仅再次验证了property1
& property3
和NotBlank约束。
Symfony列出了F, A, C
组中的所有约束F, A, C
并将其应用于您的数据。 如果约束在2个或更多组中,则将仅应用一次。
因此,关于您的示例,应在$ description字段上应用NotBlank约束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.