我想知道如何在symfony 2中的应用程序中使用两个数据库连接(实体管理器),并且我已经阅读了如何使用多个实体管理器(http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html)。
在我的情况下,我想使用两个数据库db2014和db2015,它们可以允许使用select(组合框)进行更改,然后更改默认实体管理器。使用此配置:
doctrine:
dbal:
default_connection: default
connections:
//connection for db2014
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
//connection for db2015
db2015:
driver: "%database_driver2%"
host: "%database_host2%"
port: "%database_port2%"
dbname: "%database_name2%"
user: "%database_user2%"
password: "%database_password2%"
charset: UTF8
我理解了这篇文章,但主要的问题是我必须更改代码控制器以选择像这样的实体管理器:
// All three return the "default/db2014" entity manager
$em = $this->get('doctrine')->getManager();
// Both of these return the "db2015" entity manager
$db2015Em = $this->get('doctrine')->getManager('db2015');
我可以将默认实体管理器设置为不更改控制器代码吗?或者我可以如何实现它?我希望能够解释清楚,因为我的英语不是很好。
提前致谢!
答案 0 :(得分:0)
您必须在config.yml
中更改Doctrine ORM部分,如Symfony Cookbook
doctrine:
dbal:
[...]
orm:
default_entity_manager: db2015
entity_managers:
db2015:
connection: db2015
mappings:
AcmeDemoBundle: ~
AcmeStoreBundle: ~
db2014:
connection: db2014
mappings:
AcmeCustomerBundle: ~