php – 在Laravel中动态创建各种连接

您好我一直在互联网上搜索有关使用多个数据库连接的问题,并找到了允许我首先在database.php中创建连接的解决方案,然后我可以在需要时切换它们.现在问题是我不知道运行时的数据库名称.我有一个允许用户登录的主数据库,然后数据库将根据用户登录确定要切换的数据库.

我尝试过的:

Config::set('database.connections.mysql.database', Config::get('database.connections.mysql.database') . '_business_' . $preUser->business_id);

这就是我之前所做的,我的代码正在处理本地环境但是当我切换到我的开发环境时它停止了工作.

Any idea why

我得到的另一个问题是我想用同样的方案运行迁移和播种.我会在一个数组中有一系列数据库,并且需要在每个数据库上运行迁移.

我也试过这个解决方案,但它不能以某种方式工作.它在设置后尝试获取数据库连接时显示null

Laravel: connect to databases dynamically

最佳答案
关于您的主题问题 – 可以通过在配置中创建新的临时数据库连接并使用它来连接新数据库来完成:

Config::set("database.connections.$database", $newDBConnectionParams);
$this->connection = DB::connection($database);

该方法描述于here

至于你的代码在本地环境上运行但不在dev上运行 – 我怀疑这是因为配置缓存 – 当你尝试更新现有的配置条目时,它不会更新,因为条目值来自缓存.并且似乎配置缓存在本地和开发环境中具有不同的设置.

转载注明原文:php – 在Laravel中动态创建各种连接 - 代码日志