Symfony2:递归验证

时间:2013-08-23 12:51:10

标签: symfony recursion validation

我有一个带有验证器的实体(不是表格)。

所以我使用$validator->validate($entity),但它没有验证我的子对象(实体类有一些其他实体类和一些验证器)。

是否有“自动”方式执行此操作,或者我必须为每个方法执行$errorList->addAll($validator->validate($entity));

1 个答案:

答案 0 :(得分:6)

要允许对对象进行递归验证,您只需使用约束@Assert\Valid

即可

实施例
假设一个人有一个强制性的姓氏

class Person
{
    /**
     * @Assert\NotNull
     * @var string
     */
    protected $lastName;
}

您有一个产品,有买家(Person

class Product
{
    /**
     * @Assert\NotNull
     * @Assert\Valid
     * @var Person
     */
    protected $buyer;
}

通过NotNullValid,每次验证Product模型时,都会检查:

  • 有买家
  • 买家有lastName