Php 在laravel 5.3中对空成员函数lists()的调用
在Laravel5.3中,我试图编辑所有用户页面(管理员/用户)中的注册用户,并为他们分配角色和权限。我使用了Laravel5.2PDF手册中的代码。但只要我点击一个用户来编辑它。它带来了下面的错误 UsersController.php第26行中的FatalThroTableError:调用成员 函数lists()为空 自Laravel 5.3以来,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');
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();