我有一个正在工作的代码,但是当我切换到不同的URL时,我创建的连接返回到默认连接时,我遗漏了什么?
Route::get('/change-database', function () {
DB::purge('mysql');
Config::set('database.connections.test.driver', 'mysql');
Config::set('database.connections.test.host', 'localhost');
Config::set('database.connections.test.username', 'root');
Config::set('database.connections.test.password', '');
Config::set('database.connections.test.database', 'fdis_two');
Config::set('database.default', 'test');
DB::reconnect('test');
$connection= DB::connection()->getDatabaseName();
return $connection;
});它正在工作,但在进入不同的路由后,它会返回到默认连接。
发布于 2018-04-02 09:57:44
它正在工作,但在进入不同的路由后,它会返回到默认连接。
这是因为,您的应用程序的所有配置都存储在其中,因此不会更改.env文件。
在改变..。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbName
DB_USERNAME=username
DB_PASSWORD=password在同一路由中,尝试编辑.env文件,然后尝试访问所有其他路由。
在访问/change-database路由之后,它应该反映:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=newDbName
DB_USERNAME=newUsername
DB_PASSWORD=newPassword否则,您将不得不修改应用程序的代码,以匹配如下所示:文档
当使用多个连接时,您可以通过
DB外观上的连接方法访问每个连接。传递给connection方法的名称应该对应于config/database.php配置文件中列出的连接之一: $users =DB::connection(‘foo’)->select(…);
https://stackoverflow.com/questions/49604154
复制相似问题