我正在寻找一个很好的解决方案,使用Doctrine进行实体管理,在Symfony中实时连接数据库.
我的方案是我们服务的所有入站用户都将访问* .website.com地址,例如client1.website.com.
我们希望为Client表使用一个Doctrine实体,然后根据其帐户的URL动态查找其数据库凭据.
到目前为止,我已经在stackoverflow上找到了以下关于动态更改数据库凭据的主题 – 但没有明确可行的解决方案.
我想建议合作整理一个有效的解决方案,我会为其他想要在Symfony中修改数据库连接参数的人们整理一篇博客/教程文章.
以下是一些相关帖子:
Dynamic database connection symfony2
Symfony2,Dynamic DB Connection/Early override of Doctrine Service
谢谢!
解决方法
如果$em是现有的实体管理器,并且您想重用它的配置,则可以使用:
$conn = array( 'driver' => 'pdo_MysqL','user' => 'root','password' => '','dbname' => 'foo' ); $new = \Doctrine\ORM\EntityManager::create( $conn,$em->getConfiguration(),$em->getEventManager() );