Вызов функции-члена hasAnyRole () по null - PullRequest
0 голосов
/ 20 июня 2020

Я новичок в laravel. У меня действительно проблема с промежуточным ПО. Я уже зарегистрировал его в Kernel. php файл.

public function handle($request, Closure $next){

   $user = Auth::user();

    if($user->hasAnyRole('school'))
    {
         return $next($request);
    }
      

    return redirect('login');
}

вот моя модель пользователя

public function roles(){

        return $this->belongsToMany('App\Role');
    }

    public function hasAnyRoles(){

        return null !== $this->roles()->whereIn('name', $roles)->first();
    }

     public function hasAnyRole(){
     return null !== $this->roles()->where('name', $role)->first();
     }

1 Ответ

1 голос
/ 20 июня 2020

Попробуйте перевернуть лог c, а также проверить, авторизован ли он. Сделайте (Auth::check():

public function handle($request, Closure $next){
  if (Auth::check()) {
     $user = Auth::user();
     if($user->hasAnyRole('school'))
     {
        return $next($request);
     }
  } else {
      return redirect('login'); 
  }
}
...