我正在Symfony 2.8开发一个项目 .
假设您有这种情况,Class ClassA使用Trait TraitA,它提供了您想要验证的属性,并且 you do not want to edit TraitA 因为它位于外部库中(例如Doctrine Behavior,如https://github.com/KnpLabs/DoctrineBehaviors) .
假设 you want to use Annotations 通过Symfony Validator验证您的类ClassA(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;
}
}
有更清洁的方法吗?