Symfony2:递归验证
我有一个带有一些验证器的实体(不是表单) 所以我使用Symfony2:递归验证,symfony,recursion,validation,Symfony,Recursion,Validation,我有一个带有一些验证器的实体(不是表单) 所以我使用$validator->validate($entity),但它不验证我的子项目(entity类有一些其他实体类和一些验证器) 是否有一种“自动”的方法来实现这一点,或者我必须执行$errorList->addAll($validator->validate($entity))代码?要允许对对象进行递归验证,只需使用约束即可 示例 假设一个人有一个强制性的姓氏 class Person { /** * @Assert\NotN
$validator->validate($entity)
,但它不验证我的子项目(entity类有一些其他实体类和一些验证器)
是否有一种“自动”的方法来实现这一点,或者我必须执行
$errorList->addAll($validator->validate($entity))为每个对象编写>代码?要允许对对象进行递归验证,只需使用约束即可
示例
假设一个人有一个强制性的姓氏
class Person
{
/**
* @Assert\NotNull
* @var string
*/
protected $lastName;
}
你有一个产品,有一个买家(人
)
通过使用NotNull
和Valid
,每次验证产品
模型时,它都会检查:
- 它有一个买家
- 买方有一个
姓
您可以使用物业上的注释,谢谢!!我想@Assert\Type(…)
就足够了。我会添加@Assert\Type(…\Person)
以确保它是个人对象。:)@事实上,你不必这么做。由于属性被锁定,您应该有一个setBuyer(Person$Person)
方法。如果给定类型错误,PHP将触发错误
class Product
{
/**
* @Assert\NotNull
* @Assert\Valid
* @var Person
*/
protected $buyer;
}