gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:45:10 26 4
gpt4 key购买 nike

您好,我一直在 Internet 上搜索有关使用多个数据库连接的信息,并找到了允许我首先在 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

至于您的代码在本地环境中工作但不在开发环境中工作 - 我怀疑这是因为配置缓存 - 当您尝试更新现有配置条目时,它不会更新,因为条目值是从缓存中获取的。而且配置缓存似乎在本地和开发环境中有不同的设置。

关于php - 在 Laravel 中动态创建各种连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45095779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com