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;
}