我的目标是为symfony2应用程序中的常见任务创建可重用的特征。例如,我想要具有可缓慢的特性,当添加到我的实体时,会自动添加slug字段和监听器来更新每个实体。当我试图从特征中继承教义注释时,我的问题出现了。
举个例子:
/**
* @UniqueEntity("name")
*/
trait Sluggable {
/**
* @Assert\NotBlank()
* @ORM\Column(type="string", length=255, unique=true)
*/
protected $name;
}
我正在使用它
/**
* @ORM\Table(name="seller")
*/
class Seller implements SluggableInterface {
use Sluggable;
}
当我尝试从表单创建Seller
时,@UniqueEntity("name")
无效并且验证无效。我必须在Seller
类中手动添加它才能工作,我不希望这样。感谢。
答案 0 :(得分:0)
类不会从使用的特征继承“类级”注释,只能从它们的方法和属性继承。学说注释读者不支持这一点。
(symfony验证器组件使用“doctrine / annotations”来读取注释,因此它也很可能受到影响。)
请参阅https://github.com/doctrine/phpcr-odm/issues/639
这有一个PR,但它还没有合并,所以你运气不好。