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

Laravel中如何判断当前路由无前缀?

几种直观区分管理员/用户路由的方案

1. 直接判断空前缀

Laravel里无前缀的路由,调用getPrefix()返回的是空字符串(''),而非你预想的'/',所以直接用以下代码判断用户路由即可:

Route::current()->getPrefix() === ''

2. 用中间件做标记

给所有管理员路由统一添加专属中间件(比如admin):

Route::prefix('admin')->middleware('admin')->group(function () {
    // 所有管理员路由定义在这里
});

后续判断当前路由是否属于管理员组,直接检查中间件集合:

in_array('admin', Route::current()->gatherMiddleware())

这种方式逻辑更健壮,哪怕后续管理员路由前缀变更,只要中间件标识不变,判断逻辑无需修改。

3. 利用路由名称前缀

给管理员路由分组设置名称前缀admin.:

Route::prefix('admin')->name('admin.')->group(function () {
    // 管理员路由定义
});

判断时通过路由名称前缀区分:

str_starts_with(Route::currentRouteName(), 'admin.')

对应的用户路由可直接判断名称不包含admin.前缀,可读性极强,后续维护也不容易混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:22:38