Laravel:具有多种模式的政策

时间:2020-05-07 17:00:49

标签: laravel model

我的应用程序AdminCompanyEmployee中有3个登录系统。登录后,它们都以各自的访问权限降落在相同的admin area(例如/site.com/admin)上。

我有一个名为Faq的部分,只能由admin访问。因此,我添加了policy来处理这种情况。但是,如果我使用admin登录,则可以正常工作。但是,如果我使用CompanyEmployee登录,则会收到错误

Argument 1 passed to App\Policies\UserPolicy::viewAny() must be an instance of App\User, 
    instance of App\Company given

-- Or --

Argument 1 passed to App\Policies\UserPolicy::viewAny() must be an instance of App\User, 
    instance of App\Employee given

这是我的代码:

UserPolicy.php

use App\User;

class UserPolicy
{
    use HandlesAuthorization;

    public function viewAny(User $user)
    {
        return ($user->role == \Common::ROLE_ADMIN);
    }

    ...
}

Layouts / main.blade.php:

...

@can('viewAny', \App\User::class)
    <li><a href="{{ route('admin.faq.index') }}" title="FAQs">FAQs</a></li>
@endcan

...

0 个答案:

没有答案