Symfony 2覆盖实体并添加额外的属性

时间:2016-12-02 17:02:37

标签: symfony inheritance doctrine-orm

我有实体A和实体B,它们扩展了实体A.

实体A - 在供应商捆绑中。 实体B - 在/ src包中。

我搜索了很多时间,只有解决方案适合我。它在Doctrine事件ClassMetadataListener上使用loadClassMetadata

但扩展实体B不起作用。我需要将实体A的所有属性添加到实体B。

我无法理解为什么。

2 个答案:

答案 0 :(得分:4)

使用Doctrine2时,不能简单地扩展类。

查看chapter 6. Inheritance Mapping上有关如何在实体类上实现继承的文档。

您可能对in chapter 6.1. Mapped Superclasses感兴趣。

  

映射的超类是一个抽象或具体的类,它为其子类提供持久的实体状态和映射信息,但它本身不是一个实体。通常,这种映射超类的目的是定义多个实体类共有的状态和映射信息。

为此,您必须将@MappedSuperclass注释用于实体基类。

答案 1 :(得分:1)

在A的顶部添加@MappedSuperclass注释。这就足够了:)