Skip to content

10.2 CLI 命令行使用 ​

概述

代码生成器提供 CLI 命令行方式,适合批量生成或 CI/CD 集成场景。

命令格式 ​

bash
# =============================================================================
# 代码生成器 CLI 命令
# =============================================================================
# php think generate:code → ThinkPHP 命令行调用代码生成器
# <表名>                 → 数据库表名(不含表前缀)
# |<注释>                → 可选,用 | 分隔表注释(用于生成菜单标题)
# =============================================================================
php think generate:code <表名>[|注释]

参数说明 ​

参数必填说明示例
table(参数)否数据库表名,多表用逗号分隔(需配合 --batch)think_example 或 think_example|案例演示
--config / -c否指定已有的 JSON 配置文件路径,跳过表解析--config config.json
--output / -o否将配置导出为 JSON 文件--output config.json
--dry-run / -d否仅预览,不写入代码文件--dry-run
--type / -t否模板类型:ui(默认)或 ui2--type ui2
--overwrite / -w否覆盖已存在的文件--overwrite
--no-menu否不生成菜单--no-menu
--batch / -b否批量模式,table 参数支持逗号分隔多表--batch

使用示例 ​

bash
# -----------------------------------------------------------------------------
# 列出所有可生成的数据库表
# -----------------------------------------------------------------------------
php think generate:code

# -----------------------------------------------------------------------------
# 预览生成代码(不写入文件,仅输出到终端)
# -----------------------------------------------------------------------------
php think generate:code think_example --dry-run

# -----------------------------------------------------------------------------
# 生成案例演示模块(带表注释)
# -----------------------------------------------------------------------------
php think generate:code think_example|案例演示

# -----------------------------------------------------------------------------
# 生成文章管理模块(覆盖已有文件)
# -----------------------------------------------------------------------------
php think generate:code think_article|文章管理 --overwrite

# -----------------------------------------------------------------------------
# 生成用户管理模块(使用 ui2 树形模板)
# -----------------------------------------------------------------------------
php think generate:code think_user|用户管理 --type ui2

# -----------------------------------------------------------------------------
# 批量生成多张表
# -----------------------------------------------------------------------------
php think generate:code think_order,think_product,think_category --batch

# -----------------------------------------------------------------------------
# 导出配置为 JSON 文件
# -----------------------------------------------------------------------------
php think generate:code think_example --output config.json

# -----------------------------------------------------------------------------
# 从配置文件生成(跳过表解析)
# -----------------------------------------------------------------------------
php think generate:code --config config.json

生成的文件 ​

执行命令后,自动生成以下文件:

text
app/controller/ExampleController.php    # 控制器(定义 API 接口方法)
app/logic/ExampleLogic.php              # 业务逻辑(继承 BaseLogic 获得 CRUD)
app/model/Example.php                   # 数据模型(继承 BaseModel 获得软删除/时间戳)
app/validate/ExampleValidate.php        # 验证器(字段验证规则)
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/ 模板)
ui/src/views/tool/example/querySchemas.ts # 查询表单配置(仅 ui/ 模板)

生成后操作 ​

生成完成后,路由、菜单、字典均已自动创建。通常只需:

bash
# -----------------------------------------------------------------------------
# 第 1 步:检查生成的文件是否正确
# -----------------------------------------------------------------------------
ls app/controller/Example*              # 控制器
ls app/logic/Example*                   # 业务逻辑
ls app/model/Example*                   # 数据模型
ls app/validate/Example*                # 验证器
ls ui/src/api/tool/example*             # 前端 API
ls ui/src/views/tool/example/           # 前端页面

# -----------------------------------------------------------------------------
# 第 2 步:根据业务需求调整 Logic 属性配置
# -----------------------------------------------------------------------------
# 可调整:pageLikeFields、pageEqFields、serializeMaps 等

# -----------------------------------------------------------------------------
# 第 3 步:在菜单管理中调整菜单排序和图标
# -----------------------------------------------------------------------------

与 Web 界面对比 ​

特性CLI 命令Web 界面
使用方式命令行浏览器
适用场景批量生成、CI/CD、自动化单表生成、可视化配置
预览功能支持(--dry-run)支持预览
批量生成支持(--batch 原生支持)支持(多选表)
树形结构支持(--type ui2)自动检测 parent_id 字段
覆盖文件支持(--overwrite)支持
跳过菜单支持(--no-menu)不支持
导出配置支持(--output)不支持
从配置生成支持(--config)不支持
权限限制不受限制受权限和演示模式限制

推荐

日常开发推荐使用 Web 界面(可视化配置更方便),批量生成或自动化场景使用 CLI 命令。

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