Laravel потерять параметры URL - PullRequest
       5

Laravel потерять параметры URL

0 голосов
/ 17 сентября 2018

У меня есть проект laravel, которому нужно передать параметры в URL, но если пользователь вошел в систему, он теряет параметры, потому что пользователь перенаправляется на домашнюю страницу.

Например, URL-адрес такой:

laravel.dev/login?color=blue&number=12

Но если пользователь вошел в систему, он перенаправляется из / login в / home, что хорошо, но мне нужно, чтобы параметры также передавались при перенаправлении, так чтобудет выглядеть так:

laravel.dev/home?color=blue&number=12

Может кто-нибудь, пожалуйста, помогите мне определить это.

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

функция входа

1 Ответ

0 голосов
/ 17 сентября 2018

Cheers @ info,

вы можете перезаписать функцию "sendLoginResponse (Request $ request)" из черты "Illuminate \ Foundation \ Auth \ AuthenticatesUsers":

/**
 * Send the response after the user was authenticated.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
protected function sendLoginResponse(Request $request)
{
    $request->session()->regenerate();

    $this->clearLoginAttempts($request);

    return $this->authenticated($request, $this->guard()->user())
            ?: redirect()->intended($this->redirectPath());
}

Откройте LoginController (приложение / Http / Controllers / Auth / LoginController.php) и добавьте свою функцию перезаписи и добавьте ваши параметры получения в перенаправление:

/**
 * Send the response after the user was authenticated.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
protected function sendLoginResponse(Request $request)
{
    $request->session()->regenerate();

    $this->clearLoginAttempts($request);

    return $this->authenticated($request, $this->guard()->user())
            ?: redirect('/foo', ['color' => $request->get('color')]);
}

Код не проверен.Надеюсь, это будет полезным вдохновением


Обновление - я реализовал свое решение в тестовом проекте

Сначала я добавил цвет параметра в форму входа в систему: enter image description here На втором шаге я переписал функцию sendLoginResponse в моем LoginController.Мне пришлось изменить redirect('/foo', ['color' => $request->get('color')]) на redirect()->route('dashboard', ['color' => $request->get('color', 'white')]): enter image description here

И на последнем шаге я отладил свой код, чтобы посмотреть, передается ли параметр GET цвета в перезаписанную функцию:enter image description here

Вот результат: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...