我的应用程序Admin
,Company
和Employee
中有3个登录系统。登录后,它们都以各自的访问权限降落在相同的admin area
(例如/site.com/admin
)上。
我有一个名为Faq
的部分,只能由admin
访问。因此,我添加了policy
来处理这种情况。但是,如果我使用admin
登录,则可以正常工作。但是,如果我使用Company
或Employee
登录,则会收到错误
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
...