У меня в приложении 3 системы входа: Admin
, Company
и Employee
. После входа в систему все они попадают в один и тот же 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
...