我必须像这样在 Controller 功能中切换用户:
\DB::setDefaultConnection($connection);
Config::set('database.default', $connection);
$user->setConnection($connection);
Auth::login($user);
其中 $user
是另一个数据库连接上的用户 eloquent 实例,而 $connection
是另一个(非默认)连接。当我尝试登录时,它使用另一个连接上的用户的 id
将用户记录在默认连接上。
我怎样才能实现我的目标?
最佳答案
在 config/database.php
中声明一个新连接
'another_connection' => [
'driver' => 'sqlsrv',
'host' => env('DB_OTHER_HOST', ''),
'port' => env('DB_OTHER_PORT', ''),
'database' => env('DB_OTHER_DATABASE', ''),
'username' => env('DB_OTHER_USERNAME', ''),
'password' => env('DB_OTHER_PASSWORD', ''),
],
在您的 Eloquent 模型中,告诉它使用新的连接。之后,您可以像往常一样使用它。
protected $connection = 'another_connection';
关于php - 在 Laravel 上手动登录到与默认连接不同的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41054458/