【发布时间】:2017-05-08 10:18:42
【问题描述】:
我在我的 laravel 项目中使用 zizaco/entrust 包,旁边是多身份验证包名称 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`
我该如何解决我的问题, 提前致谢
【问题讨论】:
-
检查
use声明。您使用的是课堂还是facade?你想使用外观。 -
您可能使用了错误的类。您是否尝试过使用
\Entrust::hasRole();。尚未测试,但解决方案是您需要使用此处提到的 EntrustFacade:github.com/Zizaco/entrust/blob/master/src/Entrust/… -
@Paladin 这对我有用,我在
vendor/zizaco/entrust/src/Entrust/Entrust.php中以user()方法获取当前登录用户时遇到了另一个问题。因为我使用Hesto/MultiAuth之前的返回无法检索当前用户,然后为了解决问题,我将返回$this->app->auth->user();更改为返回Auth::guard('user')->user();,但我认为使用Entrust Fecade仍然存在问题
标签: laravel