【问题标题】:Symfony2 - abstract entity only for inheritance, without DB table?Symfony2 - 仅用于继承的抽象实体,没有数据库表?
【发布时间】:2016-04-26 10:35:16
【问题描述】:

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

示例:
假设我有Movie 实体,它有一些人连接。人们有不同的角色(演员、导演),但我们假设他们只有名字和姓氏。出于数据分离的目的,我不想将它们保存在一个表中(带有角色)。
所以我想创建一个抽象的Person 实体,它有FirstNameLastName、getter 和setter。然后我想创建空(尽可能空)类ActorDirector,扩展Person 并让Doctrine 处理其余的,所以在DB 中我应该有actor 表与所有Person 字段。

是否有可能实现接近我想要的东西?

【问题讨论】:

  • 不是为每个角色创建新实体,为什么不能只创建一个角色实体并与人员实体关联?
  • 我想你正在寻找这个:link to oficial documentation

标签: php symfony doctrine-orm


【解决方案1】:

这似乎是基本的继承。由于您不想持久化 Person 实体而是那些继承自它的实体,因此您可以在除实体本身之外的所有内容中定义定义 Doctrine 语句的基本实体。

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

然后您将同时拥有父级和子级 Doctrine 配置,并且只有子级上的表配置,因此每个子级都将保存在自己的表上。

【讨论】:

    猜你喜欢
    • 2010-12-01
    • 2011-12-28
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2013-07-01
    • 2021-04-09
    相关资源
    最近更新 更多