在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'
设置。
对此有何想法?
答案 0 :(得分:0)
我通过创建新连接找到了解决方案:
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',
]);