【发布时间】:2018-03-23 09:42:38
【问题描述】:
在我的 Doctrine 模型中,我想要一个 BasePerson 类,其中包含所有数据库持久字段。
* @ORM\Entity()
class BasePerson
{
$street;
$number;
...
}
我还希望有一个Person 类从基础人员类扩展而来,该类还附加了一个实体侦听器。侦听器触发 API 调用并用位置数据填充我的“Person”实体。
* @ORM\Entity()
* @ORM\EntityListeners({"..."})
class Person extends BasePerson
{
$location;
}
对于所有不需要 API 调用的基本操作,我想使用 BasePerson 类,对于所有与 API 相关的操作,我将使用 Person 类;但在每种情况下,我至少都有来自数据库的信息。
现在的问题是,每当我向两个实体添加 @ORM\Entity() 注释时,Doctrine 认为这应该是两个表。我不想要两张桌子。如果我将实体注释留在两个实体之一上,则学说会给我一个错误,即该实体是非托管的...
我怎样才能把所有东西都放在一张桌子上?我阅读了有关单表继承的信息,但为此,学说将使用鉴别器列来管理它......但这不是我想要的用例......
【问题讨论】:
标签: php symfony doctrine-orm