在 laravel 5.8 中注册期间添加 ROLE 时,参数 1 传递给 Illuminate\Auth\SessionGuard::login()

Argument 1 passed to Illuminate\Auth\SessionGuard::login() when adding ROLE during registration in laravel 5.8

我正在尝试在用户注册时添加默认角色。我添加 ->assignRole() 但它给了我这个错误

这是我的创建函数

use App\HasRoles;

protected function create(array $data)
{
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ])->assignRole('borrower');

    $user_id = $user->id;

    // HasRoles::create([
    //     'role_id' => 4,
    //     'user_id' => $users->id,
    // ]);

    Referral::find($data['referral_id'])->update ([
        'status'    => 1,
        'date_used' => $data['referral_date_used']
    ]);

    CollectorMember::create ([
        'collector_id' => $data['referral_generate_by'],
        'borrower_id'  => $user_id,
        'referral_id'  => $data['referral_id'],
    ]);
    return $user;
}

您还会注意到注释 hasRole::create。好吧,我以为就是这样。

有什么建议吗?提前致谢!

创建用户后添加assignRole()方法

$user = User::create([
    'name' => $data['name'],
    'email' => $data['email'],
    'password' => Hash::make($data['password']),
]);
$user->assignRole('borrower');