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

98 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 3.1 概述与目标
:::tip 概述
本章以项目内置的 **example(案例演示)** 模块为例,从数据库建表到前端页面联调,手把手演示开发全流程。学完本章后,您将掌握新增业务模块的标准步骤。
:::
## 开发流程总览
```text
┌──────────┐
│ 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` 属性声明)
## 涉及文件
```text
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 章 代码生成器](/zh/generator/overview.html) 一键生成同等结构的模块。