我正在 Symfony 2.8 中开发一个项目。
假设您有这种情况,ClassA 使用 Trait TraitA 提供您想要验证的属性,并且您不想编辑 TraitA,因为它位于外部库中(例如 Doctrine Behaviour,如https://github .com/KnpLabs/DoctrineBehaviors)。
假设你想通过Symfony Validator ( https://symfony.com/doc/current/validation.html )使用 Annotations来验证你的 ClassA
你怎么能做到这一点?这些是类。
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;
}
}
有没有更清洁的方法来做到这一点?