路由是将url映射到具体控制器和方法的机制;thinkphp 5.1中通过route::get()等定义映射关系,支持变量占位符、正则约束及分组管理,提升灵活性与可维护性。

路由是什么,为什么需要它
ThinkPHP 5.1 的路由,本质是把用户访问的 URL 地址,映射到具体的控制器和方法上。比如小程序请求 /api/article/list,后端不能靠“猜”去执行哪个 PHP 文件——必须靠路由明确告诉框架:“这个地址,交给 application/api/controller/Article.php 里的 index 方法处理”。没有路由,所有请求都会走默认的模块/控制器/操作规则(如 index/index/index),灵活性和可维护性极差。
最简可行的路由定义方式
打开 route/route.php,写一行就能跑起来:
- Route::get('hello', 'index/index/hello'); —— 表示 GET 请求访问 /hello,交由 Index 控制器的 hello 方法响应
- 对应控制器文件路径是:application/index/controller/Index.php
- 该方法里写 return 'Hello World'; 或 return json(['msg' => 'ok']); 即可返回内容
注意:推荐写全路径(index/index/hello),避免省略模块名导致后期混淆;不建议用闭包写法做业务逻辑,不利于调试和复用。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
带参数的路由怎么写
实际接口几乎都带参数,比如获取某篇文章详情:/article/123 中的 123 是文章 ID。路由这样定义:
- Route::get('article/:id', 'api/Article/read');
- :id 是变量占位符,框架会自动提取并传给 read($id) 方法
- 可在路由中加正则约束,防止非法值:->pattern(['id' => '\d+']),表示只接受纯数字
- 也支持多个参数:Route::get('user/:uid/:type', 'api/User/info')->pattern(['uid'=>'\d+', 'type'=>'\w+']);
API 路由建议分组管理
项目一多,所有接口混在 route.php 里会难维护。推荐用路由分组隔离 API:
- 新建 route/api.php,在里面写:Route::group('api', function () { Route::get('article/list', 'Article/index'); });
- 然后在 route/route.php 中加载:require 'api.php';
- 访问地址就变成 /api/article/list,语义清晰,也方便后续统一加中间件(如鉴权、CORS)
- 分组还支持前缀简化:->prefix('api/Article/'),之后内部只需写 index、read 等方法名
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










