Doctrine:每个用户的动态parameters.yml

时间:2016-05-26 13:33:51

标签: php symfony doctrine-orm

经过多次搜索在这个论坛和其他人之后,我找不到解决问题的方法,所以我希望你能帮助我一点点 这是情况

我有一个网站:www.test.com

我有一个连接到该网站的X客户端正在使用他们自己的数据库(相同的数据库结构)   - client1db   - client2db  .....

每次我有一个新客户(公司),我都必须创建自己的数据库

另一方面,我有一个每个客户的用户列表

我无法改变这种机制的构建方式,所以我必须找到一个解决方案来处理它

我有一个带有数据库信息的config.yml 教义:     DBAL:         default_connection:默认

    connections:
        default:
            driver:   "%test_driver%"
            host:     "%test_host%"
            port:     "%test_port%"
            dbname:   "%test_name%"
            user:     "%test_user%"
            password: "%test_password%"

和一个parameters.yml来设置值

每个参数对我的所有客户都是通用的,只是主机正在改变

我想配置当公司1的客户登录主机是client1db时,当公司2的客户主机是client2db时 当然,所有公司的多个客户必须同时访问。

所以我的问题是如何将数据库主机链接到用户? 我们可以为每个用户构建参数吗?

另一个解决方案可以是在config.yml中为每个客户端创建一个连接但是这里有另一个问题,我如何将default_connection设置为日志用户?

我没有找到任何可行的解决方案,所以我希望得到任何帮助或建议我应该在哪里寻找解决方案

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果我正确地提出您的问题,我相信您需要动态变量名称。我有一个类似的项目,我做的是我创建了一个包含我可能想要的所有键的数组:

$keys = array("value1","value2","value3","value4");

然后我有一个循环机制来遍历数组并将其分配给变量名称:

for ($i = 0; $i <= sizeof($keys)-1; $i++) {
     $var = $keys[$i];
     ${substr($var,0)} = ' ';
} 

这样,我们为每个用户提供了不同的变量名称。