微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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上运行 – 我怀疑这是因为配置缓存 – 当你尝试更新现有的配置条目时,它不会更新,因为条目值来自缓存.并且似乎配置缓存在本地和开发环境中具有不同的设置.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐