首页 > 解决方案 > 在 laravel 5.8 中注册期间添加 ROLE 时,参数 1 传递给 Illuminate\Auth\SessionGuard::login()

问题描述

我正在尝试在用户注册时添加默认角色。我添加->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。好吧,我以为就是这样。

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

标签: phplaravelroles

解决方案


只需assignRole()在创建用户后添加方法。

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

推荐阅读