通过Laravel / Lumen中的Config :: set动态更改数据库名称后,DB :: Connection是否未更新?

时间:2019-06-24 13:41:02

标签: php laravel lumen

我正在尝试通过以下方式动态连接到数据库:

DB::disconnect('mysql');
Config::set('database.connections.mysql.database', 'db_1');

当我使用DB::table('table_from_db_1')->...时,它运行良好。我从db_1获得数据;

但是,当我尝试获取DB::connection()->getDatabaseName()时,它仍然返回原始数据库名称,而不是db_1

问题:

  1. 为什么会这样?
  2. 如何有效地测试我是否已实际连接到动态数据库?

1 个答案:

答案 0 :(得分:0)

对于有相同问题的任何人,请使用purge而不是disconnect解决问题。

DB::purge('mysql'); // purge instead of disconnect
Config::set('database.connections.mysql.database', 'db_1');

最后,在DB::connection()->getPdo();内使用try-catch检查连接是否有效。