1

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

谢谢。

4

1 回答 1

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

如果您想根据属性值分离此逻辑以添加验证,这不是正确的方法。你应该阅读文档,回调可能是一个解决方案。

于 2016-06-10T09:31:11.990 回答