Php 在laravel 5.3中对空成员函数lists()的调用

Php 在laravel 5.3中对空成员函数lists()的调用,php,laravel,Php,Laravel,在Laravel5.3中,我试图编辑所有用户页面(管理员/用户)中的注册用户,并为他们分配角色和权限。我使用了Laravel5.2PDF手册中的代码。但只要我点击一个用户来编辑它。它带来了下面的错误 UsersController.php第26行中的FatalThroTableError:调用成员 函数lists()为空 自Laravel 5.3以来,lists()功能已中断。您应该改用pull $selectedRoles = $user->roles->pluck('id');

在Laravel5.3中,我试图编辑所有用户页面(管理员/用户)中的注册用户,并为他们分配角色和权限。我使用了Laravel5.2PDF手册中的代码。但只要我点击一个用户来编辑它。它带来了下面的错误

UsersController.php第26行中的FatalThroTableError:调用成员 函数lists()为空

自Laravel 5.3以来,
lists()
功能已中断。您应该改用
pull

$selectedRoles = $user->roles->pluck('id');
关于错误: 您不能为特定用户设置任何角色,因此会出现错误。

在中添加以下代码

app/User.php

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

Http/Controllers/UserController.php

而不是

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

您能在
用户
类中向我们展示您的
角色
方法吗?请检查。虽然,这里没有答案。但是,评论可能会有帮助。我使用了委托来获得我的角色和权限。我用Pull替换了列表,但同样的错误会出现。我不明白你说没有特定用户的任何角色是什么意思检查数据库记录。否则,请转到
tinker
并为系统中的所有用户键入
$user->roles
。您将得到一些没有任何角色的用户。tinker不工作。它引出了未定义的变量:第1行中的用户
tinker
没有问题。首先需要使用
$User=App\User::find()
获取一个
User
对象。我建议你看一些关于Laracasts的Laravel视频。
public function roles()
{
    return $this->belongsToMany('App\Role');
}
$userRole = $user->roles()->lists('id','id')->toArray();
$userRole = $user->roles->lists('id','id')->toArray();