Symfony验证器

时间:2016-06-10 08:33:31

标签: validation symfony symfony-validator

我的问题与symfony验证器组件有关。我没有使用表格。我想将每个实体的验证规则移到分离的类(如AuthorVlidator,BookingValidator等)。如何将其移动到分离的类并定义规则?

感谢。

1 个答案:

答案 0 :(得分:2)

您为什么要将其移至分离的课程?使用注释,它很容易使用。

这样做并不是一个好主意,但如果您真的想在其他类中执行此操作,则可以在要验证的每个类中添加此方法:

class YourObject
{
    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        YourObjectValidator::validate($this, $metadata);
    }
}

use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;

class YourObjectValidator
{
    public static function validate(YourObject $object, ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('name', new NotBlank());
    }
}

如果您想根据属性值单独使用此逻辑进行添加验证,那么这不是正确的方法。您应该阅读文档,callback可能是一个解决方案。