проблема в перенаправлении с ролями в функции redirectTo

#laravel #laravel-7

#laravel #laravel-7

Вопрос:

я столкнулся с проблемой с функцией redirectTo с ролями, в контроллере входа в систему продолжает указывать undefined (hasRole), даже если я помещаю use App user в начало контроллера

     {
        if (Auth::user()->hasRole('admin')){
            $this->redirectTo = route('admin.index');
            return $this->redirectTo;
        }
         else{
            $this->redirectTo = route('post.index');
            return $this->redirectTo;
        }


    }```
  

Комментарии:

1. какую защиту вы установили по умолчанию и какой драйвер использует поставщик пользователей для этой защиты?

2. ‘provider’ => ‘users’, ,,,, функция работает нормально! но контроллер продолжает сообщать мне об ошибке

3. какой драйвер users использует провайдер? и где в этом контроллере вы переопределяете redirectTo метод?

4. ‘driver’ => ‘session’, и да, я переопределяю метод redirectTo ()

5. что является драйвером для поставщика «пользователей»?

Ответ №1:

Я бы просто переопределил authenticated метод, который позволяет вам возвращать любой ответ, который вы хотите:

 protected function authenticated(Request $request, $user)
{
    return redirect()->route(
        $user->hasRole('admin') ? 'admin.index' : 'post.index'
    );
}