codeigniter 4 路由必须用闭包封装规则并作为参数传入 $routes->group() 或 $routes->get() 等方法;错误赋值写法无效,正确写法支持嵌套分组、restful 资源及多种 http 方法。

CodeIgniter 4 要用闭包写路由,核心是把路由规则封装在匿名函数里,再通过 $routes->group() 或直接调用 $routes->get() 等方法传入。这不是可选技巧,而是 CI4 的标准写法,尤其在组织模块化路由或设置命名空间时必须用。
闭包必须作为参数传入,不能赋值给变量
常见错误是写成:
$routes->group('admin') = function($routes) { /* ... */ }; // ❌ 语法合法但完全无效
这行代码不会注册任何路由,php spark routes 也查不到,调试时容易卡在 404 却找不到原因。
正确写法是把闭包当第二个参数传进去
比如定义后台路由组:
$routes->group('admin', function($routes) {
$routes->get('dashboard', 'Admin\Dashboard::index');
$routes->get('users', 'Admin\Users::list');
$routes->post('users/create', 'Admin\Users::create');
});
访问 /admin/dashboard 就会调用 App\Controllers\Admin\Dashboard::index(注意命名空间路径需与实际控制器类一致)。
闭包内支持所有 HTTP 方法和快捷注册
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 可混合使用
get(),post(),put(),delete() - 支持
resource()快捷注册 RESTful 资源路由 - 可嵌套子分组,比如:
$routes->group('api', ['namespace' => 'Api'], function($routes) { $routes->group('v1', function($routes) { $routes->resource('posts'); }); });
闭包外也可以用闭包定义单条路由(不常用但合法)
$routes->get('hello', function() {
return view('welcome_message');
});
这种写法适合简单响应、重定向或中间逻辑,但不推荐用于复杂业务,因为控制器职责更清晰。
不复杂但容易忽略。










