В моем блейд-файле есть следующий код:
@if(Auth::user()->isLeader())
<input type='hidden' name='leader' value='{{ Auth::id() }}'>
@endif
Это работает.
Я хочу сократить код с помощью can , поэтому я создал защиту в AuthServiceProvider:
public function boot()
{
$this->registerPolicies();
Gate::define('isLeader', function ($user) {
return $user->isLeader();
});
}
и изменил файл блейда на:
@can('isLeader')
<input type='hidden' name='leader' value='{{ Auth::id() }}'>
@cannot
Если я сейчас открою блейд-файл, я получаю следующую ошибку:
«Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: isLeader ()»
Почему это происходит?
Редактировать: Это моя isLeader
функция:
public function isLeader()
{
$leader = static::where('id','=',$this->id)->leader();
if($leader->count() == 0){
return false;
}
return true;
}