在laravel 5中,我创建了中间件来更改数据库凭据:
config([
'database.connections.mysql.database' => 'someDB',
'database.connections.mysql.username' => 'someUser',
'database.connections.mysql.password' => 'somePass'
]);
使用使用中间件的路由,我试图在控制器中输出当前数据库:
exit(config('database.connections.mysql.database'));
正确设置为"'someDB'
"。当我在同一函数中使用eloquent时,它会尝试联系"旧"数据库,而不是我在中间件中设置的'someDB'
设置。
对此有什么想法吗?
我找到了一个解决方案,只需创建一个新的连接:
config([
'database.connections.mysql2.database' => 'someDB',
'database.connections.mysql2.username' => 'someUser',
'database.connections.mysql2.password' => 'somePass',
'database.connections.mysql2.driver' => 'mysql',
'database.connections.mysql2.host' => 'localhost',
.....
// setting default connection to mysql2
'database.default' => 'mysql2',
]);