我在我的laravel项目中使用zizaco / entrust包旁边的多个Auth软件包名称Hesto / multi-auth
我们的laravel 5.4项目,
当我想通过此方法获取当前登录用户的角色和权限时,我得到以下错误:Entrust::hasRole('role-name');
OR Auth::user()->hasRole('role-name');
但我可以使用此方法访问用户的角色,例如:
$user = User::find($userid);
dd($user->hasRole('admin')); // Return true
我按照完全安装说明但我得到以下错误:
`Non-static method Zizaco\Entrust\Entrust::hasRole() should not be called statically`
我怎么能解决我的问题,提前谢谢
在此错误消息中,您可以回答问题:
不应静态调用非静态方法Zizaco \ Entrust \ Entrust :: hasRole()
你静态地调用了这个方法hasRole()
,但这种方法是非静态的。这意味着您需要创建此类的对象,而不是使用类。
在您给出的示例中:
$user = User::find($userid);
dd($user->hasRole('admin')); // Return true
你创建了一个类User
的对象,类User
(我认为)实现了类Entrust
:
$user = User::find($userid);
$user
是一个对象,它不是静态的,你可以使用hasRole()。
换句话说,要使用方法hasRole()(字面意思 - 是某人有角色吗?)你需要这个someone
:
$user->hasRole('admin') // Is this user has role `admin`?
希望,我解释了。抱歉我的英语(我刚学习)。