【问题标题】:Attempt to read property "permissions" on null in Laravel 8尝试在 Laravel 8 中读取 null 的属性“权限”
【发布时间】: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,没问题。如果我的评论有帮助,请选择我的答案)

标签: php laravel-8


【解决方案1】:

正如我在 cmets 中所说,您的数据库中似乎没有字段“slug”=“paciente”的“角色”。这就是为什么在这一行

$role = \App\Models\Role::where('slug', 'paciente')->first(); 

$role 为空。检查您的角色表

【讨论】:

    猜你喜欢
    • 2021-06-25
    • 2021-05-25
    • 2022-06-10
    • 2021-08-08
    • 2022-10-12
    • 2022-11-16
    • 2023-01-25
    • 2022-01-04
    • 2023-01-28
    相关资源
    最近更新 更多