加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 19:37:53 所属栏目:大数据 来源:网络整理
导读:您好我一直在互联网上搜索有关使用多个数据库连接的问题,并找到了允许我首先在 database.php中创建连接的解决方案,然后我可以在需要时切换它们.现在问题是我不知道运行时的数据库名称.我有一个允许用户登录的主数据库,然后数据库将根据用户登录确定要切换的
您好我一直在互联网上搜索有关使用多个数据库连接的问题,并找到了允许我首先在 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上运行 – 我怀疑这是因为配置缓存 – 当你尝试更新现有的配置条目时,它不会更新,因为条目值来自缓存.并且似乎配置缓存在本地和开发环境中具有不同的设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读