Files
easygoadmin-wiki/EasyGoAdmin_Gin_AntdVue/zh/generator/config.md
T
2026-10-20 21:19:44 +08:00

4.6 KiB
Raw Blame History

10.7 配置文件详解

:::tip 概述 代码生成器通过 .env 和 Web 界面配置,主要控制生成行为和默认值。 :::

.env 配置

; 代码生成器配置
[GENERATOR]
; 父菜单ID(生成的菜单挂在此菜单下)
; 在菜单管理中查看目标父菜单的 ID
PARENT_MENU_ID = 189

; 应用名(路由前缀)
; 影响生成的菜单路径和前端目录
; 如:tool → /tool/xxx,system → /system/xxx
APP_NAME = tool

Web 界面配置

通过「工具管理 → 代码生成」页面配置:

配置项 说明 默认值
表名 选择要生成的表 -
模块名 生成的模块名(影响路由前缀和前端目录) 表名去掉前缀
功能名 功能中文名称(用于注释和菜单标题) 表注释
作者 代码注释中的作者 admin
包名 生成文件的命名空间 app
是否导入导出 是否生成 import/export 方法 是
树形结构 是否使用树形模板(需有 parent_id 字段) 否
上级菜单 生成菜单挂载到的父菜单 由 PARENT_MENU_ID 决定

生成的文件路径

文件 路径 说明
Controller app/controller/{Name}Controller.php 控制器
Logic app/logic/{Name}Logic.php 业务逻辑
Model app/model/{Name}.php 数据模型
Validate app/validate/{Name}Validate.php 验证器
API ui/src/api/{app}/{name}.ts 前端 API
列表页 ui/src/views/{app}/{name}/index.vue 列表页
编辑弹窗 ui/src/views/{app}/{name}/edit.vue 编辑弹窗
详情弹窗 ui/src/views/{app}/{name}/detail.vue 详情弹窗
表格列配置 ui/src/views/{app}/{name}/columns.ts 表格列定义(仅 ui/ 模板)
查询表单配置 ui/src/views/{app}/{name}/querySchemas.ts 搜索表单定义(仅 ui/ 模板)

自动生成的 Logic 属性

代码生成器会根据表结构自动分析并生成以下 Logic 属性:

属性 生成条件 说明
$fileFields 字段名含 image/avatar/photo/pic 等且类型为 varchar 文件/图片字段,自动迁移临时文件并补全 URL
$fileSaveDir 有 $fileFields 时生成 文件上传子目录
$contentFields 字段名含 content/body/description 且类型为 text 富文本字段,自动处理临时文件和图片占位符
$pageLikeFields 字段名含 name/title/keyword 且类型为 varchar 模糊搜索字段,分页查询时 LIKE 匹配
$pageEqFields 字段名含 status/type/group 且类型为 int 精确匹配字段,分页查询时等值过滤
$uniqueFields 字段有 UNIQUE 索引 唯一性校验字段,新增/修改时自动校验
$serializeMaps 字段有选项(choices)时自动生成 枚举显示名映射,查询时自动补 {字段名}Text
$treeParentField 表含 parent_id 或 pid 字段 树形结构父级字段
$treeLikeField 树形结构时生成 树形查询模糊搜索字段

serializeMaps 与字典自动创建

当字段被分析出有选项(choices)时,代码生成器会:

  1. 自动生成 $serializeMaps 映射

    // 示例:字段 status 有选项(0=正常, 1=禁用)
    protected array $serializeMaps = [
        'status' => 'example_status',  // 字典编码 = {模块名}_{字段名}
    ];
    
  2. 自动创建字典数据

    在 think_dict 和 think_dict_item 表中自动创建对应记录:

    表 字段 值
    think_dict name 案例-状态
    think_dict code example_status
    think_dict_item name / value 正常 / 0,禁用 / 1
  3. 查询时自动翻译

    BaseLogic::processSerializeMaps() 在查询结果中自动补 statusText 字段,值为字典翻译后的文本。

:::info 幂等性 字典创建是幂等的:如果 think_dict 中已存在相同 code 的记录,会自动跳过,不会重复创建。 :::

配置影响总结

配置项 影响范围
GENERATOR.PARENT_MENU_ID 生成的菜单挂载位置
GENERATOR.APP_NAME 菜单路径、前端目录、API 路径、路由前缀
是否导入导出 Controller 中是否生成 import/export 方法,Logic 中是否生成对应方法
树形结构 使用 ui/ 还是 ui2/ 模板,Controller 中是否生成 page 方法

相关文档