检查角色和zizaco /委托laravel包中的权限

时间:2017-05-08 10:18:43

标签: laravel

我在laravel项目中使用 zizaco / entrust 包旁边的多个Auth包名称 Hesto / multi-auth

我们关于laravel 5.4的项目,

当我想通过此方法获取当前登录用户的角色和权限时,我得到以下错误: Entrust::hasRole('role-name');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`

我如何解决我的问题, 提前致谢

1 个答案:

答案 0 :(得分:2)

在此错误消息中,您已回答问题:

  

非静态方法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`?

希望,我解释了。抱歉我的英语(我刚学习)。