可借助liuferen/think-curd、RXThinkCMF、官方make命令或think-orm扩展四种方案批量生成ThinkPHP6.x CRUD代码:前者补全业务逻辑,后者集成前后端,官方命令提供纯净骨架,ORM扩展支持高适配模板定制。

如果您在ThinkPHP6.x项目中需要快速构建数据表对应的增删改查功能,但手动编写模型、控制器、验证器及视图耗时费力,则可借助第三方插件实现结构化代码批量生成。以下是多种可行的插件化生成方案:
一、使用 liuferen/think-curd 插件生成带业务逻辑的CRUD
该插件通过解析数据库表结构元信息,生成含搜索条件处理、分页调用、软删除支持的控制器与模型代码,弥补官方 think:build 命令仅输出空骨架的不足。需确保数据库连接可用且表命名符合规范(如 user 表对应 UserModel)。
1、执行命令安装插件:composer require liuferen/think-curd
2、检查 config/console.php 文件中是否已注册命令映射:'liuferen hinkcurdcommandBuild' => 'think:curd'
立即学习“PHP免费学习笔记(深入)”;
3、确认数据库中目标表存在且字段类型明确,例如 status 字段为 tinyint(1) 时需在模板中手动补全 |in:0,1,2 验证规则
4、运行生成命令:php think curd --table=user --module=admin
5、修改 vendor/liuferen/think-curd/src/template/controller.tpl,在 index 方法内插入 $this->request->param() 解析搜索参数并拼入 where 条件链
二、采用 RXThinkCMF 内置代码生成器生成前后端完整模块
RXThinkCMF 框架将 ThinkPHP6.x 与 Layui 深度集成,其内置生成器可同步产出后端控制器/模型/验证器及前端 HTML + JavaScript 页面,支持字段注释驱动的界面标签自动渲染,适用于后台管理类系统快速搭建。
1、下载 RXThinkCMF 官方发行版并部署至 Web 服务器环境
2、登录后台系统,进入【系统工具】→【代码生成器】菜单
3、选择已建好的数据表(如 article),确保各字段 comment 注释完整(如 “标题”、“状态:0-禁用,1-启用”)
4、勾选生成选项:包含列表搜索栏、状态筛选下拉、回收站入口、Excel 导出按钮
5、点击【生成】按钮,系统自动创建 admin/module/article 目录及全套文件,并提示生成路径
三、组合官方 make 命令手动搭建基础 CRUD 结构
此方式不依赖第三方扩展,完全基于 ThinkPHP6.x 自带命令,适合对生成内容有强定制需求或 CI/CD 环境中数据库不可达的场景。生成结果为纯净骨架,后续需人工填充业务逻辑。
1、执行模型生成:php think make:model app/model/Article
2、创建验证器:php think make:validate app/validate/Article,并在 rule 属性中定义字段规则
3、生成资源控制器:php think make:controller app/controller/admin/Article --resource
4、编辑 app/controller/admin/Article.php,在 index() 方法中添加 $list = ArticleModel::paginate(15)
5、在 route/app.php 中注册资源路由:Route::resource('article', 'app\controller\admin\Article');
四、基于 think-orm 扩展配合自定义模板生成高适配代码
think-orm 是 ThinkPHP6 官方推荐的独立 ORM 组件,可通过扩展其 build 命令模板机制,将数据库字段类型、长度、默认值、注释等元信息映射为控制器方法参数、验证规则、视图控件类型,从而提升生成代码与业务语义的一致性。
1、安装 ORM 组件:composer require topthink/think-orm
2、复制 vendor/topthink/think-orm/src/command/Build.php 至 app/command/CustomBuild.php 并重写 execute() 方法
3、在 CustomBuild.php 中调用 $this->getSchema()->getTableFields('user') 获取完整字段描述数组
4、遍历字段数组,对 create_time 类型字段自动跳过 require 验证,对 is_deleted 字段注入 use SoftDelete 声明
5、将新命令注册进 console.php:'appcommandCustomBuild' => 'think:build:custom'



















