Skip to content

3.7 路由注册 ​

概述

路由定义在 route/app.php 中,按模块分组注册。所有需认证的接口统一绑定四个中间件。

路由文件位置 ​

text
route/app.php

Example 模块路由(来自项目实际代码) ​

php
// route/app.php 第 370~383 行

// ----------------------------------------------------------
// 自动生成 - example
// ----------------------------------------------------------
Route::group('example', function () {
    Route::get('page', 'ExampleController/page');            // 分页列表
    Route::get('list', 'ExampleController/list');            // 全量列表
    Route::get('detail/:id', 'ExampleController/detail');    // 详情(:id 为路径参数)
    Route::post('add', 'ExampleController/add');             // 新增
    Route::put('update', 'ExampleController/update');        // 修改
    Route::delete('delete/:id', 'ExampleController/delete'); // 删除
    Route::delete('batchDelete', 'ExampleController/batchDelete'); // 批量删除
    Route::post('import', 'ExampleController/import');       // 导入
    Route::get('export', 'ExampleController/export');        // 导出
});

路由格式说明 ​

php
Route::HTTP方法('路径', '控制器/方法');
HTTP 方法用途路径格式示例
GET查询/module/page、/module/detail/:idGET /api/example/page
POST新增/导入/module/add、/module/importPOST /api/example/add
PUT修改/module/updatePUT /api/example/update
DELETE删除/module/delete/:id、/module/batchDeleteDELETE /api/example/delete/1

标准路由模板 ​

每个业务模块通常包含以下路由:

php
Route::group('模块名', function () {
    Route::get('page', 'XxxController/page');            // 分页列表
    Route::get('list', 'XxxController/list');            // 全量列表(可选)
    Route::get('detail/:id', 'XxxController/detail');    // 详情
    Route::post('add', 'XxxController/add');             // 新增
    Route::put('update', 'XxxController/update');        // 修改
    Route::delete('delete/:id', 'XxxController/delete'); // 删除
    Route::delete('batchDelete', 'XxxController/batchDelete'); // 批量删除
    Route::post('import', 'XxxController/import');       // 导入(可选)
    Route::get('export', 'XxxController/export');        // 导出(可选)
});

路由命名规范

  • 路径使用小写英文(如 example、user)
  • 详情/删除使用 :id 参数(如 detail/:id)
  • 批量删除使用 batchDelete 路径

中间件绑定 ​

所有需认证的接口在 route/app.php 末尾统一绑定中间件:

php
})->middleware([
    \app\middleware\AuthMiddleware::class,     // JWT认证 + 权限校验
    \app\middleware\TenantMiddleware::class,    // 租户上下文注入
    \app\middleware\DemoMiddleware::class,      // 演示环境拦截
    \app\middleware\LogMiddleware::class,       // 操作日志记录
]);

验证路由注册 ​

bash
# 查看所有已注册路由
php think route:list

# 测试路由是否正确
curl http://localhost:8000/api/example/page -H "Authorization: Bearer <token>"

小蚂蚁云团队 · 提供技术支持