Doctrine2/Symfony2-同一个表上有多个实体



在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:同一张表有两个实体,使用一个有利于另一个

相关内容

  • 没有找到相关文章

最新更新