На Laravel 5.6 Я работал с перенаправлением на целевой URL после входа в систему. Бизнес-кейс:
Я пытаюсь перейти в / article / create, который требует входа пользователя в систему.
в.
Пользователь перенаправлен на форму регистрации по адресу /auth/login.
Теперь пользователь входит в систему и перенаправляется обратно на свой целевой URL
по адресу /article/create.
Мой код:
Для Url Previous Я использовал следующий код в LoginController.php и работал как талисман
public function showLoginForm()
{
session(['link' => url()->previous()]);
return view('auth.login');
}
protected function authenticated(Request $request, $user)
{
return redirect(session('link'));
}
Для целевого URL, который я пытался использовать
session()->put('url.intended',url()->previous());
вместо
session(['link' => url()->previous()]);
Но это не работает, я получаю сообщение об ошибке:
Объект класса Illuminate \ Routing \ Redirector не может быть преобразован в строку
Дополнительно я попробовал redirect()->intended()->getTargetUrl();
getTargetUrl не существует. поэтому ошибка: метод Illuminate \ Routing \ UrlGenerator :: getTargetUrl не существует.
Даже я пытался с redirectTo: но, кроме того, у laravel нет функции redirectTo.
Честно говоря, я не знаю, как продолжить, и основываюсь на том факте, что в его зоне входа у меня есть некоторые проблемы безопасности, продолжающие изменять код.
Несмотря на то, что я читал много постов в SO, никто не определяет функциональный код для работы с заданным URL с помощью getTargetUrl.