php - 在 Laravel 上手动登录到与默认连接不同的连接

标签 php mysql laravel

我必须像这样在 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/

相关文章:

php - Laravel 4 中使用分组信息进行多对多选择

一组数字中数字的重要性的php

ffmpeg - php-fpm 卡住 ffmpeg exec 上的用户 session

mysql - 如何编写一个简单的选择查询而不是使用 View ?

php - 哪种使用查询的方式会有效?

mysql - 如何使用 laravel eloquent 从右边的 sql 中获取 5 个字符?

php - 谷歌分析 API : requestReportData by weeks instead of days?

php - 使用 CodeIgniter 从进程列表中删除查询

mysql - 如何在一个查询中连接两个表?

php - 从 Laravel 调用 Oracle PL/SQL 返回 CLOB