【发布时间】:2014-03-26 11:51:49
【问题描述】:
我想知道如何在 symfony 2 的应用程序中使用两个数据库连接(实体管理器),并且我已经阅读了如何使用多个实体管理器 (http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html)。
就我而言,我想使用两个数据库 db2014 和 db2015,它们可以允许通过选择(组合框)进行更改,然后更改默认实体管理器。使用此配置:
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');
我可以将默认实体管理器设置为不更改控制器代码吗?或者我该如何实现它的一些想法?我希望解释清楚,因为我的英语不是很好。
提前致谢!
【问题讨论】:
-
我也有同样的问题。你找到解决问题的答案了吗?谢谢回答
-
不!对不起。我用的是 symfony 2.3,看来 2.7 版本是可以的。
-
我还有一个问题。您能否告诉我 Symfony 2.7 中此功能的名称,或者如果您知道如何找到它?非常感谢。
标签: symfony doctrine-orm