长时间的谷歌搜索仍然在寻找理想的解决方案,如何为捆绑创建第二个数据库连接。我的系统由许多捆绑包组成,但对于其中一个捆绑包,我不仅需要连接原始数据库,还需要连接到另一个数据库(一次连接2个连接)。
我在我的bundle的boot()方法中尝试过这种方式:
$connectionFactory = $this->get('doctrine.dbal.connection_factory');
$connection = $connectionFactory->createConnection(array(
'driver' => 'pdo_mysql',
'user' => 'my_user',
'password' => 'my_pass',
'host' => '',
'dbname' => 'my_dbname',
));
$this->container->set('doctrine.dbal.new_connection', $connection);
$em = $this->get('doctrine')->getEntityManager('new');
但它抛出了一个错误: 名为“new”的Doctrine EntityManager不存在。
如果我尝试向config.yml添加第二个连接,我用
调用它$this->get('doctrine')->getEntityManager('second_connection')
它会抛出相同的错误。
修改 错误被消除了。它是由doctrine.dbal.connections中“mappings”参数设置错误引起的。
现在我希望创建与数据库的连接,该数据库由bundle处理。并且app / config / config.yml或其他配置不知道这个连接。 简单地说,当新捆绑的用户打开页面处理自己的连接和实体管理器时,它将自动创建新连接,您可以访问2个或更多数据库。首先是来自app / config / config.yml的原始版本,其次是捆绑连接。
我尝试在doctrin.dbal中的app / config / config.yml和doctrine.orm中的实体管理器中预定义2个数据库连接。这很好,但对我来说不像我上面写的那样。
提出另一个明智的解决方案,如何解决?
答案 0 :(得分:0)
您可以在app / config / parameters.ini文件中配置它,la http://symfony.com/doc/2.0/cookbook/doctrine/multiple_entity_managers.html