在Symfony 2.8中,我有一些具有相同字段的实体,但是为了数据组织的目的,我需要将它们作为单独的实体。是否可以创建一个包含所有字段、getter 和 setter 的抽象基类,然后只创建扩展基抽象类的新实体,尽可能少地重复?
例:
假设我有一个实体Movie
它有一些人连接。人们有不同的角色(演员、导演),但让我们假设他们只有名字和姓氏。我不想出于数据分离目的将它们保存在一个表中(带有角色)。
所以我想创建一个抽象的Person
实体,它将有FirstName
、LastName
、getter 和 setter。然后我想创建空的(尽可能空的)类Actor
和Director
,扩展Person
,让 Doctrine 处理其余的,所以在数据库中我应该有actor
包含所有Person
字段的表。
是否有可能实现接近我想要的东西?
这似乎是基本的继承。由于您不想保留 Person 实体,而是那些从它继承的实体,因此您可以在要保留的所有内容中定义定义基本实体,定义教义语句,但实体本身除外。
然后在子实体上定义可能需要保留的其余字段,将它们配置为使用 Doctrine,在子实体注释上定义将保留该特定实体的表+告诉实体继承其父 Doctrine 配置。
然后,您将同时拥有父级和子级 Doctrine 配置,并且只有子级上的表配置,因此每个子项都将保留在自己的表上。