Эта страница не работает. Localhost перенаправлял вас слишком много раз. Попробуйте очистить файлы cookie. ERR_TOO_MANY_REDIRECTS - PullRequest
0 голосов
/ 21 июня 2020

привет, я борюсь с этой ошибкой со вчерашнего дня, мне нужна помощь, вот мое промежуточное ПО, а вот мой маршрут. Эта страница не работает. Localhost перенаправлял вас слишком много раз. Попробуйте очистить файлы cookie. ERR_TOO_MANY_REDIRECTS.

    public function handle($request, Closure $next)
    {
        if (Auth::check()) {
            $user = Auth::user();
            if ($user->hasAnyRole('school')) {
                return $next($request);
            }
        } else {
            return redirect('login'); 
        }
    }
Route::get('/', 'PagesController@index');
Route::get('/about', 'PagesController@about')->name('about');

Auth::routes();
Route::get('/school', 'HomeController@index')->name('school')->middleware('school');

Невозможно даже получить доступ к целевой странице. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Вам нужно снова перенаправить пользователя в другой функции hasAnyRole:

public function handle($request, Closure $next)
{
    if (Auth::check()) {
        $user = Auth::user();
        if ($user->hasAnyRole('school')) {
            return $next($request);
        } else {
            // HERE
            return redirect('login'); 
        }
    } else {
        return redirect('login'); 
    }
}
0 голосов
/ 21 июня 2020

Вы должны использовать вот так

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