【发布时间】:2016-06-29 13:44:48
【问题描述】:
我的目标是为 symfony2 应用程序中的常见任务创建可重用的特征。例如,我希望具有 sluggable 特征,当添加到我的实体时,会自动添加 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 类中才能工作,我不希望这样。谢谢。
【问题讨论】:
-
类不从特征继承注释。但是您可能会使用doctrine extensions: sluggable 来实现这一点。
标签: php symfony doctrine-orm doctrine traits