首页 文章

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

提问于
浏览
1

我正在我的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 回答

  • 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`?
    

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

相关问题