Php 使用Symfony2和Doctrine2动态选择数据库

Php 使用Symfony2和Doctrine2动态选择数据库,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我有以下问题: 我有一个核心数据库,其中包含将我的登录信息保存到其他数据库的条令实体。每个注册到我的应用程序的客户机都将获得自己的数据库。我使用子域来确定必须使用哪个数据库。客户数据库包含其他条令实体,以便保存客户的数据 为了确定基于子域的数据库,我选中了 和。我试过提问者的解决方案和答案的解决方案。 给定的解决方案有效,但仅适用于一部分。我创建了一个能够在控制器中的数据库之间切换的服务,但是当我创建一个新实体时,Symfony总是希望在主数据库上执行create表 我想在数据库上划分表。我也尝

我有以下问题: 我有一个核心数据库,其中包含将我的登录信息保存到其他数据库的条令实体。每个注册到我的应用程序的客户机都将获得自己的数据库。我使用子域来确定必须使用哪个数据库。客户数据库包含其他条令实体,以便保存客户的数据

为了确定基于子域的数据库,我选中了 和。我试过提问者的解决方案和答案的解决方案。 给定的解决方案有效,但仅适用于一部分。我创建了一个能够在控制器中的数据库之间切换的服务,但是当我创建一个新实体时,Symfony总是希望在主数据库上执行create表

我想在数据库上划分表。我也尝试过注释,但无法使其工作。有没有人对如何分离实体并将它们放在不同的数据库中有什么建议?理想情况下,我应该能够定义每个实体要使用的数据库

其他信息:

Symfony 2.3


原则2

如果您有动态数据库,可能连接到第二个实体管理器(对于ex dynamic):

原则:
dbal:
连接:
违约:
#默认配置
动态:
#用于替换连接信息的占位符
orm:
实体管理人员:
违约:
连接:默认值
动态:
连接:动态
映射:
MyBundle:
类型:注释
dir:DynamicEntity#用于ext\My\MyBundle\DynamicEntity\Item类
下次保存:

$em=$this->get('doctrine')->getManager('dynamic');
$em->persist(新建\My\MyBundle\DynamicEntity\Item());
$em->flush();

您必须记住eneity manager映射配置()。如果没有此功能,您将能够将每个实体放入两个数据库。

谢谢您的评论。我以前尝试过这个解决方案,但它不能满足我的需要。动态数据库的数量未知,因此我无法将其硬编码到我的设置中。我在中央(默认)数据库中有一个表,用于存储连接信息(主机/dbuser/dbname/password)。接下来,我将使用动态切换数据库。“动态”实体管理器和“动态”连接只是占位符。每个请求的数据库都可以不同。我现在已经用不同的方式管理了相同的数据库。无论如何,谢谢你的帮助。这个问题不再重要了。