在我的symfony2应用程序中,我有两个数据库连接,我想保持实体类是单独的,因此在一个包中有一组实体类,在另一个包中有另一组。但是,在尝试调用我的bundle时,由于某种原因未将其注册为Entity Namespace,错误如下:
Unknown Entity namespace alias 'AcmeStaffBundle'.
500 Internal Server Error - ORMException
我找了它设置实体名称空间的位置,我发现它在缓存文件中
$e = new \Doctrine\ORM\Configuration();
$e->setEntityNamespaces(array('AcmeStoreBundle' => 'Acme\\StoreBundle\\Entity'));
如何将其添加到数组?
新编辑:
我的config.yml如下,这有助于澄清问题:
orm:
entity_managers:
default:
connection: default
mappings:
AcmeStoreBundle: ~
Foo:
connection: Foo
mappings:
AcmeFooBundle: ~
提前致谢
答案 0 :(得分:1)
尝试使用生成的CRUD表单时遇到了这个问题。最终解决了问题的是将首选实体管理器的名称作为参数添加到getEntityManager()
,如下所示:
$em = $this->getDoctrine()->getEntityManager('Foo');
答案 1 :(得分:0)
通过保持您的实体“分离”并不完全确定您的意思,但如果您尝试将一个实体映射到同一数据库中的两个不同的表,我认为这不可能,因为它列为学说限制,请参阅: here
答案 2 :(得分:0)
使用多个实体经理:
http://symfony.com/doc/master/cookbook/doctrine/multiple_entity_managers.html
http://symfony.com/doc/master/reference/configuration/doctrine.html#mapping-configuration
查看prefix
参数:
...
orm:
auto_generate_proxy_classes: %kernel.debug%
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
OneBundle:
prefix: One\Bundle\Entity\Namespace
other:
connection: other # check this :p
mappings:
OtherBundle:
prefix: Other\Bundle\Entity\Namespace