Я использую Laravel 8.0 для создания веб-приложения. У меня есть несколько страниц, которые можно увидеть, только если вы вошли в учетную запись. У меня он настроен так, что, когда вы переходите на страницу, он использует функцию контроллера для возврата представления, но перед этим он проверяет, вошли ли вы в систему, с помощью простого оператора if. Если вы вошли в систему, он возвращает представление, иначе перенаправляет на страницу входа. Я хочу сделать так, чтобы после входа в систему они перенаправлялись обратно на страницу, на которую они пытались перейти раньше. Я использовал для этого return redirect()->back();, но он также возвращает им страницу входа, поскольку считает, что это было там, где это было раньше. Я использую отдельный маршрут и функцию контроллера для входа в систему через форму. Если бы кто-нибудь мог помочь, я был бы очень признателен!






я предпочитаю использовать это
redirect()->route('your route name')
потому что по логике после формы отправки он переходит на другой маршрут, который является /авторизоваться с POST запрос
Итак, когда вы используете это
redirect()->back()
он переходит к /авторизоваться с GET запрос, который является вашей формой входа
Вы должны использовать следующий код. В вашей функции login просто добавьте это
Session::put('previousUrl',url()->previous());
$previous_url = Session::get('previousUrl');
И после успешной аутентификации входа просто вызовите это
return Session::get('previousUrl');
Промежуточное программное обеспечение лучше всего использовать для проверок аутентификации, laravel поставляется с промежуточным программным обеспечением
auth, которое перенаправляет на страницу входа, если кто-то пытается посетить страницу, требующую предварительного входа в систему, и этот пользователь не вошел в систему. Также вы можете использовать методintendedкласса Redirect, который перенаправляет на предполагаемый URL-адрес перед перенаправлением на страницу входа. Загляните в документацию, чтобы лучше разобраться в этих темах.