Во встроенной в Laravel системе авторизации есть свойство PHPredirectTo
в контроллерах PHPLoginController
, PHPRegisterController
и PHPResetPasswordController
. В этом свойстве можно задать то место, в которое будут отправляться пользователи после выполнения соответствующего действия.
Внутри самого Laravel это настраивается и реализуется при помощи типажа PHPRedirectsUsers
, а последние минорные улучшения позволяют вам определить метод PHPredirectTo()
, для которого запасным вариантом остаётся свойство.
public function redirectPath()
{
if (method_exists($this, 'redirectTo')) {
return $this->redirectTo();
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
Благодаря этому новому методу вы можете просто выполнять другие действия или задавать расположение динамически. Для примера давайте предположим, что вы хотите перенаправлять пользователя на его личную страницу после входа в приложение. Теперь вы можете сделать что-то подобное в вашем PHPLoginController
:
public function redirectTo()
{
return '/@'.auth()->user()->username;
}
Комментарии (3)
В подавляющем числе случаев, можно использовать return Redirect::back(); Предварительно подключив фасад Redirect (use Redirect;).
Не работает.
Пишет: ErrorException (E_WARNING)
Header may not contain more than a single header, new line detected
Как то непривычно «при помощи типажа RedirectsUsers». Более привычно «при помощи трейта RedirectsUsers»;)