在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'));
}
答案 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();