Пользовательское перенаправление Laravel после регистрации с пользовательскими данными сеанса - PullRequest
1 голос
/ 24 апреля 2019

Я создаю приложение с Laravel 5.8, где после регистрации или входа в систему пользователь перенаправляется на пользовательскую страницу вместе с перенесенными данными сеанса, отображаемыми на странице с надписью «Добро пожаловать!».

Я заметил, что поведение перенаправления по умолчанию в RegisterController представляет собой простую строку, которая не позволяет мне добавлять свое пользовательское перенаправление.

  * Where to redirect users after registration.
     *
     * @var string
     *
      protected $redirectTo = '/custompage';

Я попытался изменить это поведение по умолчанию, заменив строку на функцию:

protected function redirectTo()
{
    /* generate URL dynamically */
     return redirect('/custompage')->with('status', 'Welcome!');
}

Но я получаю предупреждение

ErrorException (E_WARNING) Заголовок не может содержать более одного заголовок, обнаружена новая строка

Итак, как перенаправить на пользовательскую страницу и добавить свои пользовательские данные? Конечно, без изменения кода любого поставщика.

Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 24 апреля 2019

измените это на

protected function redirectTo()
{
    /* generate URL dynamicaly */
     return '/custompage';
}

Это только возвращает путь, а не redirect() здесь.

и добавленные данные сеанса, используя Session::flash() или Session::put() в зависимостипо вашему требованию.

1 голос
/ 24 апреля 2019

Вы можете сделать это методом redirectTo.Этот метод должен возвращать строку, а не объект ответа.Так и должно быть

protected function redirectTo()
{
    /* flash data to the session here */
    session(['status', 'Welcome']);
     return '/custompage';
 }
1 голос
/ 24 апреля 2019

Вы можете достичь того, что вы описали по-разному.Простым способом будет использование URL вашего пользовательского маршрута в RegisterController, затем добавление этого маршрута к вашему маршруту и ​​соответствующее определение функции контроллера.

Вы будете сохранять свой RegisterController следующим образом:

* Where to redirect users after registration.
     *
     * @var string
     *
      protected $redirectTo = '/custompage';

Затем добавьте для него маршрут:

Route::any('custompage', array('as' => 'custompage', 'uses' => 'HomeController@custompage'));

И определите функцию контроллера по своему желанию.

...