Skip to content

10.9 常见问题 ​

Q: 生成的文件在哪里? ​

A: 后端文件生成到 app/ 目录,前端文件生成到 ui/src/ 目录。具体路径:

text
app/controller/{Name}Controller.php       # 控制器
app/logic/{Name}Logic.php                 # 业务逻辑
app/model/{Name}.php                      # 数据模型
app/validate/{Name}Validate.php           # 验证器
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/ 模板)

树形结构模块(含 parent_id 字段)使用 ui2/ 模板,不生成 columns.ts 和 querySchemas.ts。

Q: 生成后需要手动修改吗? ​

A: 通常需要。生成的是基础 CRUD 代码,复杂业务逻辑(如关联查询、钩子处理、导入导出)需要手动补充。

Q: 可以重新生成吗? ​

A: 可以,但会覆盖已有文件。建议先备份自定义修改。预览接口(preview)不会写入文件,可安全查看。

Q: 树形结构表怎么生成? ​

A: 表中包含 parent_id 字段时,生成器会自动使用 ui2/ 树形模板。

Q: 生成的权限码格式是什么? ​

A: 格式为 sys:{模块名}:{操作},如 sys:example:add。

Q: 支持哪些数据库? ​

A: 支持 MySQL、PostgreSQL、SQL Server、Oracle、SQLite 五种数据库。生成器会自动检测当前配置的数据库类型。

Q: 生成时报错"表名格式不合法" ​

A: 表名只允许字母、数字、下划线,且不能以数字开头。检查表名是否包含特殊字符。

Q: 演示环境下能用吗? ​

A: 预览功能(preview)在演示环境下可用,实际生成(generate)会被拦截。

Q: 可以用命令行生成吗? ​

A: 可以。使用 php think generate:code <表名> 命令行生成。CLI 不受演示环境限制,也不需要权限配置。详见 10.2 CLI 命令行使用。

Q: CLI 命令和 Web 端有什么区别? ​

A: 底层引擎完全相同,区别在于操作方式:

  • CLI 适合开发环境、批量操作、CI/CD 集成
  • Web 端适合日常开发、可视化配置
  • CLI 不受权限和演示模式限制
  • CLI 支持 --output 导出配置、--config 从配置生成

Q: 如何批量生成多张表? ​

A: Web 端可多选表后点击批量生成。CLI 使用 --batch 选项:

bash
php think generate:code table1,table2,table3 --batch

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