ThinkPHP6.0基础路由定义核心是使用Route门面类的快捷方法(如Route::get)或通用接口Route::rule,在route/app.php(单应用)或app/index/route/web.php(多应用)中声明;必须用语法、变量名与控制器参数严格一致,修改后需执行php think route:clear清缓存。

在 ThinkPHP6.0 中定义基础路由,核心是使用 Route 门面类提供的快捷方法或通用接口,在 route/app.php(单应用)或对应应用的 route/web.php(多应用)中声明规则。关键在于路径写法、变量语法、请求类型控制和文件加载时机。
用快捷方法注册常用请求路由
推荐日常开发优先使用 Route::get()、Route::post() 等快捷方法,语义清晰、不易出错:
-
Route::get('hello', 'Index/hello');→ 匹配GET /hello,调用app\controller\Index的hello方法 -
Route::post('user/→ 匹配', 'User/save'); POST /user/123,是标准 TP6 变量语法(不是:id) -
Route::any('api/→ 支持任意请求类型,适合网关类路由/ ', 'Api/dispatch');
用 Route::rule() 实现更精细控制
当需要正则约束、多请求类型组合或中间件绑定时,必须用 Route::rule():
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
-
Route::rule('user/→ 强制', 'User/read', 'GET', ['id' => '\d+']); id只匹配数字,避免/user/abc被错误解析 -
Route::rule('login', 'Auth/login', 'POST|PUT');→ 同时支持 POST 和 PUT 提交登录 - 第三个参数省略时默认为
'*'(即任何请求类型),但显式写出更利于维护
注意变量写法与控制器参数一致性
TP6 统一使用 语法,且变量名必须与控制器方法参数名完全一致:
- 路由写
'article/,控制器方法签名必须是/ / ' public function read($year, $month, $id) - 若写成
$y或漏掉$month,对应参数将为空或报错 - 不建议混用
:id写法,开启严格模式后可能直接失效
确保路由文件被正确加载
很多“路由不生效”问题其实源于加载失败:
- 单应用项目:确认
app/route.php中有include __DIR__ . '/../route/app.php'; - 多应用项目:路由应放在
app/index/route/web.php等对应路径,且入口已绑定应用名 - 改完路由后务必执行
php think route:clear清除路由缓存,否则新规则不会生效 - 调试时访问不存在的 URL,若提示「未匹配到任何路由」说明文件已加载;若空白或跳首页,大概率是没引入
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










