将 Laravel 默认用户数据库连接更改为另一个数据库连接

change Laravel default user db connection to another db connection

我有 config/database.php 如下:

'default' => 'web',

'connections' => array(

# Our primary database connection
'web' => array(
    'driver'    => 'mysql',
    'host'      => 'host1',
    'database'  => 'database1',
    'username'  => 'user1',
    'password'  => 'pass1'
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

# Our secondary database connection
'another' => array(
    'driver'    => 'mysql',
    'host'      => 'host2',
    'database'  => 'database2',
    'username'  => 'user2',
    'password'  => 'pass2'
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

),

我正在使用标准 laravel 5.3 用户身份验证。

我在 registercontroller.php 中尝试过:

protected function create(array $data)
{

    $user = new user();
    $user->setConnection('another');
    ...
}

仍然没有运气

如果我想将数据库连接移动或更改为 'another' 与用户相关的任何数据库连接(例如登录、注册、忘记密码等),我需要更改的设置在哪里?

我刚刚尝试更改 config/database.php 默认连接,如下所示:

    'default' => 'another',

它有效,所以我似乎需要 tell/configure 某处使用 'another' 数据库连接进行任何用户交易

谢谢!

要仅为特定型号使用不同的连接,您可以在型号 class 中设置 属性,例如App\User:

class User extends Authenticatable
{
    use Notifiable;

    protected $connection = 'another';
 ...
}

https://laravel.com/docs/5.3/eloquent#basic-usage

转到app>auth.php

并编辑 table 配置:

 'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'your_table_here',
            'expire' => 60,
        ],
    ],