如果你在 laravel 的项目中使用自带的 auth 认证系统,其实在 5.3 的版本之后,不管是 LoginController ,RegisterController 还是 ResetPasswordController ,你都是可以通过设置一个 redirectTo 属性来限定登录,注册后的跳转路由。
但是在 5.3.29 之后,你还可以通过自定义 redirectTo() 方法来进行重定向,这个源码其实是位于 RedirectsUsers 这个 trait 当中的:
public function redirectPath()
{
if (method_exists($this, 'redirectTo')) {
return $this->redirectTo();
}
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}虽然这看起来是一个小小的改进,但是在某些应用场景之后,它其实是非常有用的。比如,如果说用户登录之后的跳转路由需要经过一定的代码逻辑才能得到的话,这个 redirectTo() 方法就可以派上用场了,比如返回类似于 twitter 的用户首页,就可以这样:
public function redirectTo()
{
return '/@'.auth()->user()->name;
}