laravel 6 при входе на предыдущий URL не работает - PullRequest
0 голосов
/ 27 октября 2019

Я использую Laravel framework моя предыдущая версия laravel - 5.8 и в моем промежуточном ПО для входа в систему

public function handle($request, Closure $next)
{
    if(Auth::check())
    {
        return $next($request);
    }
    else
    {
        Session::put('url.intended',URL::previous());
        return redirect('/login');
    }
}

, и это контроллер входа в систему контроллера

if(Session::get('url.intended') <> '')
    return Redirect::to(Session::get('url.intended'));
else
    return redirect('/');

с этимкоды в laravel 5.8 все работало замечательно, но когда я обновляюсь до laravel 6, он больше не работает, я не знаю, почему здесь какая-то помощь, спасибо, если я пришел по какой-либо ссылке, меня всегда перенаправляют на / link

1 Ответ

3 голосов
/ 27 октября 2019

Вероятно, вам следует позволить фреймворку обрабатывать как можно больше этого. Если вам нужно использовать свое собственное промежуточное программное обеспечение и метод Controller, все же позвольте платформе справиться с этим, как это лучше всего.

Работа с намеченным URL-адресом - это уже то, что фреймворк способен сделать сам, и проверяет множество условий, чтобы выяснить это. ,Вы можете использовать метод guest перенаправителя, чтобы он сделал это для вас:

return redirect()->guest('login');

Это позаботится о перенаправлении на 'login' и при необходимости установит url.intended в сеансе.

После успешного входа в систему вы можете перенаправить их туда, где они пытались завершить, «намеревались» или использовать альтернативный URL:

return redirect()->intended('/');

Это перенаправит на то, что может найтив качестве «предназначенного» и если не использовать запасной вариант. Он также удалит ключ 'url.intended' из сеанса, поскольку он больше не используется. Нет необходимости устанавливать или проверять сеанс самостоятельно.

...