首页 > 解决方案 > 如何在 bundle 中扩展 symfony 实体

问题描述

有没有一种方法可以在另一个包中扩展一个 symfony 实体@DiscriminatorMap而无需事先指定它?

捆绑A

捆绑B

标签: phpsymfonyinheritanceormdoctrine

解决方案


您可以尝试让教义自动生成鉴别器图。从文档本节
的最后一个要点:

如果没有提供鉴别器图,则自动生成图。自动生成的鉴别器映射包含每个类的小写短名称作为键。所以你会:

  1. 省略@DiscriminatorMapBundleA 中的声明。
  2. 在 BundleB 中正常扩展实体(确保每个类的短名称是唯一的)。
  3. 更新数据库架构。

编辑
正如 ju_ 在评论中指出的那样,这个解决方案显然不适用于 Doctrine ORM 3.0,但对2.5 - 2.7版本仍然有效


推荐阅读