Symfony Validator,验证Traits中定义的属性

时间:2017-02-10 11:39:58

标签: symfony symfony-validator

我正在Symfony 2.8中开发一个项目。

假设你有这种情况,Class ClassA使用Trait TraitA提供你想要验证的属性,而你不想编辑TraitA 因为它在一个外部库中(例如a教义行为,如https://github.com/KnpLabs/DoctrineBehaviors)。

假设您想要使用注释来验证您的类ClassA,通过Symfony验证器(https://symfony.com/doc/current/validation.html

你怎么能做到这一点?这些是类。

Class ClassA {
    use TraitA
}

Trait TraitA {
    private $property_in_trait_a;
}

以下是我找到的唯一解决方案,可能会生成映射到整个类的违规(我需要在相关表单中指定error_mapping以定位表单上的右侧字段):

use Symfony\Component\Validator\Constraints as Assert;

Class ClassA {
    use TraitA

    /**
     * Fake method only used to validate $property_in_trait_a
     * 
     * @Assert\Something()
     * 
     */
    public function getPropertyInTraitA()
    {
         return $this->property_in_trait_a;
    }
}

有更简洁的方法吗?

0 个答案:

没有答案