【问题标题】:AliceBundle with multiple entity managers?AliceBundle 与多个实体管理器?
【发布时间】:2016-12-19 13:51:30
【问题描述】:

任何人都知道 AliceBundle (https://github.com/hautelook/AliceBundle) 是否支持多个实体管理器,或者我的 em 映射以某种方式搞砸了。我有一个包含七个实体对象的包(BundleA),但只配置了一个类 EntityA 来为其生成实体,但是当我尝试加载固定装置时它失败并出现以下错误:

  [Doctrine\Common\Persistence\Mapping\MappingException]
  The class 'BundleB\Entity\ClassB' was not found in the chain configured namespaces <list of namespaces not including the 'BundleB\Entity' namespace>

BundleA 和 BundleB 位于两个不同的实体管理器上,它们之间没有直接联系。 BundleA 在默认管理器中,而 BundleB 在其他实体管理器之一中。两个捆绑包都有多个实体类,它们在实时环境中运行良好。

我一直在检查实体管理器映射是否设置错误,但没有看到那里发生了什么奇怪的事情,所以我接下来要检查的是确定 AliceBundle 是否不支持多个 EM,但我找不到任何说明这种方式的文档。

所有实体都是 Doctrine ORM 实体

【问题讨论】:

  • 您是否检查过您在教义配置中的实体映射? symfony.com/doc/current/doctrine/multiple_entity_managers.html
  • 是的,我检查过了。我不能在这里真正发布整个内容,因为它是一个相当复杂的 php 文件组合,它从 yml 文件中读取信息并将映射构建为 php 数组,据我所知它是正确的。我将继续挖掘该数组以防万一(如果我在那里发现问题,我会在此处发布答案)

标签: php symfony doctrine alice-fixtures


【解决方案1】:

您必须通过提供--manager 选项手动告诉捆绑包要使用哪个实体管理器。

【讨论】:

  • 试过了,仍然是完全相同的结果,使用 --manager=A 运行,但实体管理器 A 仍然尝试对属于实体管理器 B 的类执行某些操作。
  • 您应该注意您引用的捆绑包中的所有实体都由 manager A 管理
  • 就是这样,那里很少有由错误的实体管理器管理的实体。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 2012-01-19
  • 2014-01-28
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多