在Symfony2应用程序中,我有一个MainBundle和不同的捆绑包,可以启用也可以不启用。在MainBundle中,我需要有模型和基本的实体。在OtherBundle中,实体的表名与MainBundle的Entity相同。
MainBundle中的固定装置需要加载或不加载MainBundle以外的其他捆绑包:
MainBundle
- Model
- Entity (Table name "test")
- Fixtures
OtherBundle
- Entity (Table name "test")
- Fixtures
OtherBundle2
- Entity (Table name="test")
- Fixtures
如果我对模型使用@ORM\MappedSuperclass,对MainBundle中的实体使用@ORM\Entity以及在OtherBundle的@ORM\Entity 我不能使用继承表,因为我的模型不需要知道其他捆绑包中的其他实体。@ORM\DiscriminatorMap不能指向OtherBundle。 有办法做到这一点吗?
正如Jasper N.Brouwer所提到的,它本质上是同一个实体和同一个表,所以做你想做的事情没有意义。
在名为"SharedEntityBundle"的捆绑包中创建您的实体,并使用resolve_target_entity从其他捆绑包中关联此实体,而不让它们相互了解。
http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html
也就是说,似乎有一个由多个实体经理组成的解决方案:Symfony 2/条令2:同一张表有两个实体,使用一个有利于另一个