Laravel 11中如何修改默认HOME路径?
Laravel 11中如何修改默认HOME路径?
嘿,我刚好了解这个问题!在Laravel 11中,官方确实移除了RouteServiceProvider里默认的HOME常量,但我们有几种简单的方法来修改登录后的默认跳转路径,下面给你详细说说:
方法一:手动在RouteServiceProvider中添加HOME常量
如果你习惯了旧版本通过常量统一管理跳转路径,可以直接在app/Providers/RouteServiceProvider.php里手动定义这个常量,就像你之前做的那样:
<?php namespace App\Providers; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Http\Request; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\Route; class RouteServiceProvider extends ServiceProvider { // 自定义HOME常量,设置你需要的路径 public const HOME = '/dashboard'; public function boot(): void { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); }); $this->routes(function () { Route::middleware('api') ->prefix('api') ->group(base_path('routes/api.php')); Route::middleware('web') ->group(base_path('routes/web.php')); }); } }
这样修改后,你在项目中任何需要引用默认首页的地方,都可以继续使用RouteServiceProvider::HOME来调用这个路径,和旧版本的用法完全一致。
方法二:直接修改认证控制器的跳转逻辑
如果你使用的是Laravel官方的Breeze脚手架,可以直接修改认证控制器里的跳转代码。打开app/Http/Controllers/Auth/AuthenticatedSessionController.php,找到store方法里的跳转语句:
// 原来的默认代码 return redirect()->intended(RouteServiceProvider::HOME); // 修改为你想要的路径,比如 return redirect()->intended('/dashboard');
这种方式更直接,适合只需要修改跳转路径,不需要全局常量的场景。
方法三:针对Fortify的配置修改
如果你用的是Laravel Fortify,可以直接在配置文件里设置默认跳转路径。打开config/fortify.php,找到redirects配置数组,修改home对应的取值:
'redirects' => [ 'login' => '/dashboard', // 登录后跳转的路径 'logout' => '/', 'password-reset' => '/login', 'password-update' => '/dashboard', ],
这样配置后,Fortify会自动使用你设置的路径作为登录后的默认跳转目标。
备注:内容来源于stack exchange,提问作者Hemil
相关产品推荐
相关产品推荐

