Files
rxthinkcmf-wiki/RXThinkCMF_Laravel13_NaiveVue/zh/guide/overview.md
T
2026-10-08 17:50:29 +08:00

3.7 KiB
Raw Blame History

3.1 概述与目标

:::tip 概述 本章以项目内置的 example(案例演示) 模块为例,从数据库建表到前端页面联调,手把手演示开发全流程。学完本章后,您将掌握新增业务模块的标准步骤。 :::

开发流程总览

┌──────────┐
│ 1. 建表   │  创建数据库表(含公共字段)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 2. Model  │  创建数据模型(模型 Trait 复用)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 3. FormRequest │ 创建表单请求验证(BaseRequest)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 4. Service│  创建业务服务(属性配置 + 钩子)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 5. Controller│ 创建控制器(注解 + 快捷方法)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 6. Route  │  注册路由(routes/api.php)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 7. Menu   │  配置菜单权限(可选)
└────┬─────┘
     │
     ▼
┌──────────┐
│ 8. Frontend│ 前端 API + 页面([详见第 9 章](/zh/frontend/overview.html))
└──────────┘

开发约定

约定 说明 示例
表名 不含前缀,前缀由 DB_PREFIX 决定(默认 laravel_) example → 实际 laravel_example
字段名 小写下划线 create_time、user_id
主键 统一使用 id,INT 自增 id INT PRIMARY KEY AUTO_INCREMENT
Model 位于 app/Models/,$table 指定表名 protected $table = 'example'
Service 继承 BaseService 或 BaseTenantService class ExampleService extends BaseService
Request 继承 BaseRequest,rules() 声明规则 class ExampleRequest extends BaseRequest
Controller 位于 app/Http/Controllers/Api/,继承 Controller class ExampleController extends Controller
权限码 sys:模块名:操作 sys:example:add
路由 routes/api.php,RESTful 风格 GET /api/example/page

本章示例

本章以项目内置的 example(案例演示) 模块为例,完整演示从建表到联调的全过程。该模块是代码生成器的参考模板,涵盖了标准 CRUD 的所有典型场景:

  • 分页列表(支持名称模糊搜索、状态精确过滤)
  • 全量列表
  • 详情查询
  • 新增(含头像上传)
  • 修改
  • 删除 / 批量删除
  • Excel 导入导出
  • 权限控制(#[Permission] 注解)
  • 操作日志(#[OperationLog] 注解)
  • 枚举显示名翻译(status 字典映射)
  • 唯一性校验(uniqueFields 属性声明)

涉及文件

app/Models/Example.php                    # 数据模型
app/Http/Requests/ExampleRequest.php      # 表单请求验证
app/Services/ExampleService.php           # 业务服务
app/Http/Controllers/Api/ExampleController.php  # 控制器
routes/api.php                            # 路由(example 模块 9 条)
# 前端(独立 EleVue 仓库):
# ui/src/api/tool/example.ts              # 前端 API 模块
# ui/src/views/tool/example/              # 前端页面

学习建议

  1. 先通读 3.2~3.8 按顺序跟随 example 模块走一遍;
  2. 重点理解 声明式配置:Service 只声明属性,CRUD 由 BaseService + 6 个 Trait 完成;
  3. 掌握后动手:可直接使用 第 10 章 代码生成器 一键生成同等结构的模块。