【发布时间】:2013-01-21 21:28:55
【问题描述】:
我正在尝试设置我的 symfony 以使用两个数据库连接。问题是 Symfony 不会将实体映射到正确的 EntityManager。所以执行一个查询,我必须告诉 Symfony 它应该使用哪个管理器。
我的配置:
# Doctrine Configuration
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
lookup:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "Lookup"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
MbMyAppBundle: ~
mvibes:
mappings:
MbLookupBundle: ~
connection: mvibes
所以,要从我的 Lookup 中查询,我必须这样做:$this->getDoctrine()->getRepository('MbLookupBundle:Country', 'lookup');
相反,我希望我可以省略第二个参数。这样,我的捆绑包将是独立的。项目经理可以决定他将在他的项目中实现什么数据库配置。他只需要确保映射是正确的。
这是如何工作的?如果这不可能,映射用于什么?
【问题讨论】:
-
首先将第二个连接重命名为“mvibes”而不是“lookup”
-
抱歉,是的,我稍微编辑了配置以使配置更通用。我确实有一个连接“mvibes”。
-
请编辑您的问题以使其更具可读性,并帮助我们为您提供帮助;)