【发布时间】:2021-05-22 05:00:15
【问题描述】:
我正在尝试将用户注册到系统并默认分配患者角色。 问题出现在 RegisterController 控制器中。 在create()方法中我写了如下代码:
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$role = \App\Models\Role::where('slug', 'paciente')->first();
$permissions = $role->permissions;
$user->roles()->attach($role);
$user->permissions()->sync($permissions);
return $user;
}
laravel 8 抛出的错误如下:Attempt to read property "permissions" on null
它无法识别 $ 权限变量中保存的角色的相关权限。解决办法是什么?
已经非常感谢你了!!!
【问题讨论】:
-
您的数据库中似乎没有字段“slug”=“paciente”的“角色”。这就是为什么在这一行 ``` $role = \App\Models\Role::where('slug', 'paciente')->first(); ``` $role 为空
-
您在数据库中有哪些角色?
-
角色不存在,对你的角色变量执行
dd($var) -
@AndrewMarkhai 非常感谢您的回答解决了这个问题。原来我之前做过 migrate:fresh --seed 并删除了我创建的角色。问候!
-
@Tomaguilera,没问题。如果我的评论有帮助,请选择我的答案)