Php Laravel中的动态数据库更改

Php Laravel中的动态数据库更改,php,database,laravel,laravel-5,Php,Database,Laravel,Laravel 5,我正在使用DB::disconnect和DB::reconnection为Laravel 5.2中的多租户系统连接数据库 代码如下: DB::disconnect(); Config::set('database.connections.mysql', $config); DB::reconnect(); 其中$config是要设置的配置数组,当我必须更改唯一的数据库名称时,它可以正常工作,但当我要更改数据库的前缀时,它不工作,每次都需要使用旧数据库 我曾尝试从中间件config:cache,

我正在使用
DB::disconnect
DB::reconnection
为Laravel 5.2中的多租户系统连接数据库

代码如下:

DB::disconnect();
Config::set('database.connections.mysql', $config);
DB::reconnect();
其中$config是要设置的配置数组,当我必须更改唯一的数据库名称时,它可以正常工作,但当我要更改数据库的前缀时,它不工作,每次都需要使用旧数据库

我曾尝试从中间件
config:cache
,在那里我更改了连接,但它删除了所有输入变量


那个么,我可以做些什么来更改DB连接的前缀呢?有什么帮助吗?

您需要清除数据库对象的缓存:

// Will disconnect automatically
DB::purge('mysql');

// Register new config
Config::set('database.connections.mysql', $config);

// Will reconnect automatically
DB::table('table')->get();


您需要清除数据库对象的缓存:

// Will disconnect automatically
DB::purge('mysql');

// Register new config
Config::set('database.connections.mysql', $config);

// Will reconnect automatically
DB::table('table')->get();


非常感谢,laravel中有任何东西阻止数据库缓存吗?我认为没有。“数据库缓存”的意思是“sql连接”-这意味着如果您没有数据库缓存,laravel将在每次进行查询时连接和断开连接(这是低性能和压力证明)。非常感谢,laravel中是否有任何东西阻止数据库缓存?我认为没有。“数据库缓存”意味着“sql连接”-这意味着如果没有数据库缓存,laravel将在每次进行查询时连接和断开连接(这是低性能的,而且不受压力影响)