更改现有数据库连接的数据库 - Laravel

时间:2016-07-08 12:26:05

标签: php database laravel laravel-5

我最近了解了很棒的Laravel框架但只是想知道一个对我来说仍然是个谜的查询。

我知道我们可以轻松使用

更改“数据库连接”
      $users = DB::connection('mysql2')->select(...);

但是我正在开发这样一个项目,其中根据用户请求创建多个数据库,并且需要根据用户请求动态访问这些数据库

几乎不可能将每个数据库条目作为数据库配置文件中的新数据库连接条目输入。

因此,我需要一种在我们使用的同一连接中动态更改数据库的方法。

例如。

如果我们使用“DB1”连接与配置文件中定义的数据库“test1”

我需要一种方法将“test1”数据库更改为“test2” DYNAMICALLY

2 个答案:

答案 0 :(得分:3)

可能只需在运行时更改数据库配置的值即可:

Config::set('database.connections.DB1.test1', 'test2');

答案 1 :(得分:1)

您可以为" central"中的每个用户保存数据库连接。数据库。查询该数据库,找到匹配的连接参数,并使用它们查询用户的数据库。

多租户应用程序使用类似的方法。我已经创建了package来使用Laravel创建多租户应用程序。此套餐需要“租户”#39;在配置文件中定义...你不想要的。看一下源代码。它可能会帮助你提出新的想法。