Files
rxthinkcmf-wiki/RXThinkCMF_Laravel13_AntdVue/zh/generator/demo.md
T
2026-10-08 17:50:29 +08:00

91 lines
3.1 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.
# 10.8 实战案例
:::tip 概述
以「案例演示」模块为例,演示代码生成器的完整使用流程。
:::
## 第 1 步:建表
```sql
CREATE TABLE laravel_example (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(200) NOT NULL COMMENT '案例名称',
code VARCHAR(50) DEFAULT '' COMMENT '案例编码',
type TINYINT(1) DEFAULT 1 COMMENT '案例类型',
status TINYINT(1) DEFAULT 1 COMMENT '案例状态',
sort INT DEFAULT 0 COMMENT '排序',
avatar VARCHAR(500) DEFAULT '' COMMENT '头像',
is_delete TINYINT(1) DEFAULT 0,
create_user VARCHAR(50) DEFAULT '',
create_time DATETIME,
update_user VARCHAR(50) DEFAULT '',
update_time DATETIME
);
```
(含公共字段说明见 [3.2 数据库建表](/zh/guide/database.html)。)
## 第 2 步:代码生成器操作
1. 进入「开发工具 → 代码生成」
2. 找到 `laravel_example` 表
3. 配置:
- 模块名:`example`
- 功能名:`案例演示`
- 作者:`admin`
- 是否导入导出:是
4. 点击「预览」查看生成代码
5. 点击「生成」创建文件
或使用 CLI:
```bash
php artisan generate:code "laravel_example|案例演示"
```
## 第 3 步:生成的文件
```text
app/Http/Controllers/Api/ExampleController.php # 控制器
app/Services/ExampleService.php # 业务服务
app/Models/Example.php # 数据模型
app/Http/Requests/ExampleRequest.php # FormRequest
ui/src/api/tool/example.ts # 前端 API
ui/src/views/tool/example/index.vue # 列表页
ui/src/views/tool/example/edit.vue # 编辑弹窗
ui/src/views/tool/example/detail.vue # 详情弹窗
ui/src/views/tool/example/columns.ts # 表格列配置
ui/src/views/tool/example/querySchemas.ts # 查询表单配置
```
:::tip 本项目内置示例
项目初始化数据中已内置完整的 `example` 模块(后端代码 + 菜单权限 + 字典),可直接对照生成结果与 `app/Services/ExampleService.php` 等源码。
:::
## 第 4 步:后续操作
生成完成后,以下内容已自动创建:
| 项目 | 状态 | 说明 |
|------|------|------|
| 路由 | ✅ 自动注册 | `routes/api.php` 中已插入 9 条 CRUD 路由 |
| 菜单 | ✅ 自动创建 | 主菜单(type=0)和权限节点(type=1)已创建 |
| 字典 | ✅ 自动创建 | 带选项的字段已创建字典和字典项(幂等) |
通常还需要手动调整:
1. 根据业务需求调整 Service 属性配置(如 `pageLikeFields`、`pageEqFields`)
2. 补充自定义钩子(如 `beforeDelete`、`afterDetail` 等)
3. 在菜单管理中调整菜单排序和图标
4. 为测试角色分配新菜单权限(**不分配则前端看不到菜单**)
:::tip 生成后调整
生成的代码是基础骨架,通常需要:
- 调整 Service 的查询条件配置
- 添加删除前校验(`beforeDelete`)
- 补充详情后的关联数据(`afterDetail`)
- 配置文件字段(`fileFields` + `use HasFileProcessing`)和富文本字段
- 核对 FormRequest 规则与业务约束是否一致
:::