irs*_*han 1 php laravel laravel-7
我最近开始学习 Laravel。我redirectTo()在我的 Laravel 应用程序中覆盖了默认 LoginController 中的方法。
class LoginController extends Controller
{
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function redirectTo()
{
return '/dashboard';
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但如果已通过身份验证的用户尝试再次登录(用户尚未注销并尝试访问“/login”路由),则用户将被重定向到“/home”,这显然是 RouteServiceProvider::HOME持续的。我可以简单地更改 RouteServiceProvider::HOME 常量,但肯定有更好的选择。此外,如果重定向取决于用户的角色,那么简单地更改常量不会有任何好处。那么重写 RouteServiceProvider::HOME 常量的正确方法是什么?
它不是一种方法,而是一个常数。你可以在app\Providers\RouteServiceProviders.php
你会发现这一行中改变它:
public const HOME = '/home';
Run Code Online (Sandbox Code Playgroud)
随心所欲地改变它。如果您不想更改它而只在本地更改它
protected $redirectTo = RouteServiceProvider::HOME;
Run Code Online (Sandbox Code Playgroud)
线到
protected $redirectTo = '/whatever'
Run Code Online (Sandbox Code Playgroud)