You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断当前路由是否为根页面?Route::is()等方法失效问题

解决Laravel Blade中判断根页面路由的问题

别担心,这种情况其实挺常见的,大概率是根路由的定义或者你使用判断方法的姿势不对~我给你几个靠谱的替代方案:

方法1:直接判断请求路径(最稳妥)

不管你的根路由有没有命名,直接检查当前请求的路径是不是根路径/就行,在Blade里可以这么写:

@if(request()->is('/'))
    <!-- 这里是根页面的逻辑 -->
@endif

这个方法最直接,不受路由命名的影响,绝对靠谱。

方法2:给根路由命名后用Route::is()

如果你的根路由没命名,那Route::is()和Route::currentRouteName()自然会失效。先去routes/web.php里给根路由加上名字:

// routes/web.php
Route::get('/', function () {
    return view('welcome');
})->name('home'); // 加上这个命名

然后在Blade里就可以正常用Route::is()判断了:

@if(Route::is('home'))
    <!-- 根页面逻辑 -->
@endif

或者用Route::currentRouteName()判断:

@if(Route::currentRouteName() === 'home')
    <!-- 根页面逻辑 -->
@endif

方法3:通过路由URI判断

还可以直接获取当前路由的URI来对比,写法是:

@if(Route::current()->uri() === '/')
    <!-- 根页面逻辑 -->
@endif

这个方法和第一种类似,只是从路由对象层面去获取路径。

另外补充一下:根页面肯定是有路由的,只是如果没给它命名的话,Route::currentRouteName()会返回null,这时候你如果直接判断它是否等于某个值自然会失效啦~

内容的提问来源于stack exchange,提问作者Exploit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:24:13