Страница не перенаправляется должным образом - Laravel 7

Я новичок в laravel, и я реализовал вход без аутентификации: make. теперь я реализую аутентификацию (без входа никто не может получить доступ к каким-либо страницам).

This is my routes/web.php
Route::group(['prefix' => '{locale}', 'middleware' => 'setlocale'], function() {
    Route::get('/', 'UsersController@dashboard');
    Route::get('/users', 'UsersController@index');
    Route::get('/users/index', 'UsersController@index');
    Route::get('/login', 'UsersController@login');
    Route::get('/users/login', 'UsersController@login');
    //Route::get('/users/login', 'UsersController@login')->name('login');
    Route::get('/users/logout', 'UsersController@logout');

   Route::resources([
        'users' => 'UsersController',
    ]);
});

Я добавил приведенный ниже код в свой UsersController

public function __construct() {
        $this->middleware('auth');
}

Ниже приведен код Middleware \ Authenticate.php.

protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login', app()->getLocale());
        }
    }

Но это дало мне ошибку «Маршрут [логин] не определен.». поэтому я добавил код в routes / web.php

Route :: get ('/ users / login', 'UsersController @ login') -> name ('логин'); Но тогда возникает ошибка: страница не перенаправляется должным образом, может ли кто-нибудь помочь, что я делаю не так или что-то еще нужно сделать? Спасибо.


person Kirti Umrigar    schedule 20.06.2020    source источник
comment
Замените route() на url(), потому что вы не определяли маршруты. См. laravel.com/docs/7.x/urls#urls -for-named-routes   -  person Dimitri Mostrey    schedule 20.06.2020
comment
Я это определил. Но тогда возникает ошибка: страница не перенаправляется должным образом. У меня проблема. на самом деле я определил '$ this- ›middleware (' auth ');' в userscontroller. поэтому метод входа в систему не был общедоступным. и вызвал ошибку. глупая ошибка.!   -  person Kirti Umrigar    schedule 20.06.2020


Ответы (2)


В вашем методе redirectTo вы вызываете вспомогательную функцию маршрута. Он использует имя маршрута, но вы его не указали.

Вы должны указать имя для своего маршрута входа, связав метод name с определением маршрута, например:

Route::get('/login', 'UsersController@login')->name('login');
person Faizan Abid    schedule 22.06.2020

Я это определил. Но тогда возникает ошибка: страница не перенаправляется должным образом. У меня проблема. на самом деле я определил '$ this- ›middleware (' auth ');' в userscontroller. поэтому метод входа в систему не был общедоступным. и вызвал ошибку. глупая ошибка.!

person Kirti Umrigar    schedule 24.06.2020