Symfony2 - 仅用于继承的抽象实体,没有DB表?

时间:2016-04-26 10:35:16

标签: php symfony doctrine-orm

在Symfony 2.8中,我有一些具有相同字段的实体,但出于数据组织的目的,我需要它们是独立的实体。是否可以创建一个包含所有字段,getter和setter的抽象基类,然后创建扩展基本抽象类的新实体,尽可能少地重复?

例:
假设我有一个Movie实体,它有一些人连接起来。人们有不同的角色(演员,导演),但我们假设他们只有FirstName和LastName。我不想将它们保存在一个表(带有角色)中以便进行数据分离 所以我想创建一个抽象Person实体,它将包含FirstNameLastName,getter和setter。然后我想创建空(尽可能为空)类ActorDirector,扩展Person并让Doctrine处理剩下的事情,所以在DB中我应该{ {1}}表格包含所有actor字段。

是否有可能达到我想要的效果?

1 个答案:

答案 0 :(得分:0)

它似乎只是基本的继承。既然你不想持久化Person实体,而是那些从它继承的实体你可以定义你的基本实体来定义你想要保留的所有内容的Doctrine语句,但实体本身。

然后在子实体上定义您可能要保留的其余字段,将它们配置为使用Doctrine,并在Child Entity注释上定义将要保留该特定实体的表+告诉实体继承其父Doctrine配置。

然后,您将同时拥有父级和子级Doctrine配置以及子级上的表配置,因此每个子级都将保留在其自己的表中。