Skip to content

10.7 配置文件详解 ​

概述

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

.env 配置 ​

ini
; 代码生成器配置
[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 决定

生成的文件路径 ​

文件路径说明
Controllerapp/controller/{Name}Controller.php控制器
Logicapp/logic/{Name}Logic.php业务逻辑
Modelapp/model/{Name}.php数据模型
Validateapp/validate/{Name}Validate.php验证器
APIui/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 映射

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

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

    表字段值
    think_dictname案例-状态
    think_dictcodeexample_status
    think_dict_itemname / value正常 / 0,禁用 / 1
  3. 查询时自动翻译

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

幂等性

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

配置影响总结 ​

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

相关文档 ​

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