【问题标题】:Symfony traits and Doctrine annotations not working as expectedSymfony 特征和 Doctrine 注释未按预期工作
【发布时间】: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 类中才能工作,我不希望这样。谢谢。

【问题讨论】:

标签: php symfony doctrine-orm doctrine traits


【解决方案1】:

类不会从使用的特征中继承“类级别”注释,仅从它们的方法和属性中继承。教义注释阅读器不支持这一点。

(symfony 验证器组件使用“doctrine/annotations”来读取注释,因此它也很可能受到影响。)

https://github.com/doctrine/phpcr-odm/issues/639

这里有一个PR,但它还没有被合并,所以你运气不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多