Laravel-身份验证-保镖@can“ hasRole()”不起作用

时间:2020-01-14 08:08:44

标签: php laravel laravel-6 laravel-permission

我正在尝试(但失败!)将bouncer安装到项目中。我有几项工作正常,例如能够分配角色和为角色分配能力等。但是,我在以下方面苦苦挣扎...

我在刀片文件中有以下代码:

@can('USERS-view-users')
        <a class="dropdown-item" href="{{ route('users.index') }}">View Users</a>
@endcan

它抛出此错误:

调用未定义的方法App \ User :: hasRole()(视图:C:\ Users \ User \ PhpstormProjects \ run-bouncer \ resources \ views \ admin \ nav.blade.php)

这是我的用户模型...

<?php

namespace App;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Auth;
use Silber\Bouncer\Database\HasRolesAndAbilities;
use Silber\Bouncer\Bouncer;

class User extends Authenticatable
{
    use Notifiable, HasRolesAndAbilities;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $guarded = [];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

}

我这里缺少什么吗?我可以很好地检查角色-例如,这对我有用。

@if(Auth::user()->isA('SuperAdmin')||Auth::user()->isA('PLTStudent'))
         @include('admin.nav')
@endif

0 个答案:

没有答案