4

嗨,我一直在寻找在使用多个数据库连接关于互联网和找到的解决办法,让我先在database.php中连接,然后我可以切换他们需要的时候。现在的问题是我不知道运行时的数据库名称。我有一个主数据库,让用户登录,然后数据库将确定要切换基于用户登录的数据库动态创建在Laravel各种连接

我曾尝试:

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

这就是我在前面做了和我的代码正在研究本地环境,但是当我切换到我的开发环境时,它停止工作。

任何想法,为什么

另一个问题我得到是我想要与此相同的情况下运行迁移和播种。我会在数组中有一系列数据库,并且需要在每个数据库上运行迁移。

我也试过这个解决方案,但它不以某种方式工作。它显示了空当我尝试将它设置

Laravel: connect to databases dynamically

+0

对于迁移的部分是最有可能是您的配置设置::部分没有被称为是正经历工匠。您可以通过代码扩展工匠或运行迁移。像>'工匠::呼叫( '迁移',[ '--path'=>” ../plugins/'.$tag.'/migrations', '--force'=>真]);' –

回答

0

关于你的话题的问题后,让我的数据库连接 - 它可以通过在配置临时数据库连接,并用它来连接新的数据库来完成:

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

这种方法描述here

至于你的代码对当地的环境中工作,但没有工作在开发 - 我怀疑这是因为配置缓存 - 当您尝试更新现有的配置条目时,它不会更新,因为条目值取自缓存。看起来配置缓存在本地和开发环境中有不同的设置。