在laravel 5.3中调用null上的成员函数lists()

时间:2016-11-10 06:45:23

标签: php laravel

在laravel 5.3中,我试图在All Users页面(admin / users)中编辑注册用户,并为其分配角色和权限。我使用了laravel 5.2 pdf book中的代码。但任何时候我点击一个用户来编辑它。它会出现以下错误

  UsersController.php第26行中的

FatalThrowableError:呼叫成员   函数列表()在null。

public function edit($id)
{
    $user = User::whereId($id)->firstOrFail();
    $roles = Role::all();
    $selectedRoles = $user->roles->lists('id')->toArray();
    return view('backend.users.edit', compact('user', 'roles', 'selectedRoles'));
}

2 个答案:

答案 0 :(得分:4)

自Laravel 5.3以来,lists()功能已经停止。您应该使用pluck代替。

$selectedRoles = $user->roles->pluck('id');

关于错误: 您不得为特定用户拥有任何角色,因此错误。

答案 1 :(得分:0)

中添加以下代码
  

app / User.php

public function roles()
{
    return $this->belongsToMany('App\Role');
}

之后,在其中使用下面的代码

  

Http / Controllers / UserController.php

$userRole = $user->roles()->lists('id','id')->toArray();

代替

$userRole = $user->roles->lists('id','id')->toArray();