Перенаправление после входа пользователя с модальной формой в Laravel

#php #laravel #redirect #routes

#php #laravel #перенаправление #маршруты

Вопрос:

Вместо отдельной страницы входа я использую модальную для входа пользователя. Я хочу перенаправить зарегистрированного пользователя на страницу, где открылась модальная форма.

Я попытался изменить LoginController с return Redirect::back(); помощью, но он вернулся с надписью «Заголовок может содержать не более одного заголовка, обнаружена новая строка».

Это мой модифицированный LoginController.php

 protected function redirectTo()
{
    return Redirect::back();
}
  

Возможно, я следую совершенно неправильному способу сделать это. Так что я открыт для любых предложений. Заранее спасибо за ответы.

Ответ №1:

В вашем AppHttpControllersAuthLoginController

Переопределите authenticated функцию с помощью этого:

 protected function authenticated(Request $request, $user) {
    return redirect('/'.$request->path());
}
  

$request->path() Будет получен исходный путь запроса.

@Редактировать, чтобы увидеть комментарий владельца в другом ответе

Чтобы также получить параметр url, например /...?p=477 . Вы можете отредактировать свою модальную форму аутентификации, чтобы иметь этот скрытый ввод:

 <input type="hidden" name="current_page" value="{{Request::getRequestUri()}}">
  

Таким образом, в вашем AppHttpControllersAuthLoginController

Переопределите authenticated функцию с помощью этого:

 protected function authenticated(Request $request, $user) {
    return redirect($request['current_page']);
}
  

Надеюсь, это поможет

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

1. Это должно быть «использовать Illuminate Http Request» вместо «Env Request». После этого изменения это моя защищенная функция logincontroller redirectTo(Request $request) { return redirect($request[‘current_page’]); } И это сработало. Спасибо за помощь.

Ответ №2:

Не делайте Redirect::back() , просто используйте redirect('/your_page_where_modal_appears')

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

1. Спасибо за совет, но, как я уже сказал, есть сотни сообщений. Я не хочу перенаправлять на статическую страницу. Я хочу перенаправить пользователя на страницу, на которую он вошел. Например, если он хочет войти в систему, в URL страницы …/?p = 477 после успешного процесса входа в систему я хочу перенаправить его обратно на p = 477. И проблема в том, что; Я понятия не имею, как это сделать.