我正在尝试设置我的 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
所以,要从我的查找中查询,我必须这样做:$this->getDoctrine()->getRepository('MbLookupBundle:Country', 'lookup');
相反,我希望我可以省略第二个参数。这样,我的捆绑包将是独立的。项目经理可以决定他将在他的项目中实现什么数据库配置。他只需要确保映射是正确的。
这是如何运作的?如果这是不可能的,那么映射用于什么?