企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[info] 要求 tpadmin 版本 >= v1.2 代码自动生成功能能根据配置信息自动生成一个带添加、编辑、删除、回收站等与数据库对应的 CURD 基本操作,并且自动生成相应的前端、后端数据校验,对任何不合法数据说 No,生成的代码带规范的缩进、注释,方便根据需求二次编辑,也方便团队根据同一套代码规范开发 [TOC] ## 使用前准备 >[info] 代码自动生成有可选项涉及数据表创建,请保证连接数据库的用户有权限对数据表重命名、删除、创建 >[info] 代码自动生成需要对目录有可写权限,请 Linux\Mac OS 系统用户修改相应权限,没有权限时会抛出错误并且给出应使用的命令,由于每个人安装的服务器环境不同,可能权限修改为 755、777 都不好用,可以在生成代码后再次修改代码权限,或者将本地用户加入到 apache、php-fpm、nginx 用户组,Windows 系统没测试过,如果 Windows 系统有问题请留言反馈 ## 配置 修改 `extend/Generate.php` 模型里的属性 `$blacklistName` 和 `$blacklistTable` 可以设置控制器和数据表黑名单,不允许创建这些控制器和数据表,防止代码被替换 ``` // 控制器黑名单 private $blacklistName = [ 'AdminGroup', 'AdminNode', 'AdminNodeLoad', 'AdminRole', 'AdminUser', 'Pub', 'Demo', 'Generate', 'Index', 'LogLogin', 'Ueditor', 'Upload', 'WebLog', 'NodeMap', 'Error', ]; // 数据表黑名单 private $blacklistTable = [ 'admin_access', 'admin_group', 'admin_node', 'admin_node_load', 'admin_role', 'admin_role_user', 'admin_user', 'file', 'log_login', 'node_map', 'web_log_001', 'web_log_all', ]; ``` 修改 `application/admin/extra/generate.php` ,这是生成文件默认的数据,其他地方提交过来的数据都会与它进行合并 ``` <?php /** * tpAdmin [a web admin based ThinkPHP5] * * @author yuan1994 <tianpian0805@gmail.com> * @link http://tpadmin.yuan1994.com/ * @copyright 2016 yuan1994 all rights reserved. * @license http://www.apache.org/licenses/LICENSE-2.0 */ return [ 'module' => 'admin', 'menu' => ['add'], 'create_config' => true, ]; ``` ##开始使用 访问 [http://your.doamin.com/admin/generate](http://tpadmin.demo.tianpian.net.cn/admin/generate) >[warning] 上线部署时可以修改 admin/controller 目录下的 Generate 类名为 Generate1,只要修改成不是Generate的任何字符都行,或者部署时不要将此控制器部署到线上环境 ##使用说明 ### 选项 1. 从数据表生成 选择此项并选择有效的数据表后,会根据表字段生成相应表单元素,直接从数据表快速创建 CURD 模型 >[info] 选择此项后默认不会创建数据表,如果在配置文件 `admin/extra/generate.php` 文件中配置了默认生成数据表项会生成数据表,请不要在该配置文件中配置该选项 2. 生成文件 选择此项会根据需要生成相应的文件,默认生成根据页面配置生成的文件,如果选择生成某单一文件,都会自动创建文件夹 ### 控制器信息 1. 模块 生成 CURD 模型所在的模块,默认为当前模块 2. 控制器 * 名称 控制器名称必须符合 ThinkPHP5 的控制器命名规范,不分级控制器首字母大写,驼峰式,例如 `AdminGroup`,具体请看 ThinkPHP5 官方文档 [ThinkPHP5 - 开发规范](http://www.kancloud.cn/manual/thinkphp5/118007),多级控制器要求目录名全部小写,目录名之间用点隔开,控制器名按照上面要求,例如 `one.two.three.FourFiveSix`,对应 `one/two/three` 目录下的 `FourFiveSix` 控制器,具体请看 [ThinkPHP5 - 多级控制器](http://www.kancloud.cn/manual/thinkphp5/118054) * 标题 即控制器的中文名称,例如节点管理,该名称会自动备注到生成的控制器、验证器、模型、数据表、字段中 ### 表单信息 1. 操作 可以删除或增加一行数据,表头的 `增加一栏` 增加一栏到第一行,表体部分的 `增加一栏` 按钮到该栏下面,点击 `删除` 后该栏被删除并且不可恢复 2. 标题 生成的列表是一个表格,该中文名称即是表格对应列的列名,添加、编辑页的标签名,数据表字段的字段备注,以及验证器里对应字段的中文名 3. 名称 生成列表表格对应列的字段名,数据表的字段名,验证器里的字段名,添加、编辑页表单控件的 `name` 名称 4. 类型 生成添加、编辑页对应的表单控件,例如 `select`, `input`... 等等,选择 `date` 类型时不是使用的 `input[type='date']` ,而是自动生成的 `input[type='text']` 并且给该控件添加 `DatePicker` 插件 5. 选项值 只有 `类型` 选择的为 `select`, `radio`, `checkbox` 时才有效,为该控件的选项值,支持变量和数值定义,定义为 `{configname}` 表示值为变量,对应的变量为 `extra/conf.php` 里的配置,例如控件为 `radio` ,`extra/conf.php` 里有一条配置为: ``` return [ // 性别配置 'sex' => [ 0 => '未填写', 1 => '男' , 2 => '女' ], // 节点类型 'node_type' => [ 0 => '方法', 1 => '控制器' ], 'select' => [ 1 => '值一', 2 => '值二', 3 => '值三', 4 => '值四', ] ]; ``` 选项值为 `{sex}` ,则自动生成的表单控件就是三个单选按钮,对应的值和标签为 `0 => '未填写', 1 => '男', 2 => '女'`,即 `extra/conf.php` 配置里的 `sex` 为配置分组,里面的键名为对应选择控件的值,值为对应选择控件的标签(label)或文件(text);定义为 `value1:text1#value2:text2#...` 格式化时,会根据 `#` 拆分成分组,`:` 前后拆分成值和标签(文本),例如上例中不在 `extra/conf.php` 里配置 `sex`,直接将选项值设为 `0:未填写#1:男#2:女` ,则生成的表单控件是完全一样的。如果该选项值不填写,则生成控件为一个默认的标签(文本)和对应的空值 6. 默认值 表单控件添加页的默认值,例如将上例中的默认值设为 1,则在添加页性别那个控件会默认选中 男(男对应的值为1) 7. 筛选排序 勾选此项后,列表、回收站页的表头会自动添加一个筛选排序的功能,点击对应表头就可以对其排序 8. 表单搜索 勾选此项后会在列表、回收站页的搜索栏生成相应的搜索控件,并且对应的搜索控件类型是 `input` 类型,还会给该列字段自动添加搜索后关键词高亮功能 9. 搜索类型 搜索栏对应控件的类型,`select` 对应的选项值为字段栏对应的选项值,`date` 生成的表单控件为 `DatePicker` 插件,`input` 类型该列对应的字段后自动添加关键词高亮功能 10. 是否必填 会在前端生成相应的必填 `*` 号提示和正则校验,在验证器里也会相应生成 `require` 校验规则,实现前后端同时校验 11. datatype `validform` 插件的 `datatype` 属性,可以填写正则或内置的验证规则,此处填写后会在验证器里自动生成验证规则,由于验证规则复杂,验证器里只自动生成 `require` 验证,其他验证规则默认留空,如有需要请到验证器里完善 >[info] `validform` 插件官方地址: [http://validform.rjboy.cn/](http://validform.rjboy.cn/) ,具体文档参考此处 12. nullmsg `validform` 插件里的 `nullmsg` 属性 13. errormsg `validform` 插件里的 `errormsg` 属性 ### 数据表信息 0. 数据表 * 创建数据表 勾选此项后会自动创建数据表,如果数据表存在,但是未勾选强制建表,不会自动创建数据表 * 强制建表 勾选此项后会强制删除以前的表,无论是否存在,如果遇到异常,会自动还原以前的表 * 表引擎 默认为 `InnoDb`,自己根据需要选择 * 表名 可以指定表名,不包含表名前缀,例如 配置项中默认表名前缀是 `tp`, `AdminGroup` 控制器生成的默认的表名就是 `tp_admin_group`,如果此处填写为 `tpadmin_admin_group`,则生成的表名为 `tpadmin_admin_group`,多级控制器会将目录转为下划线连接,例如 `one.two.ThreeFour` 控制器默认生成不带表名前缀的表名为 `one_two_three_four` 1. 操作 可以删除或增加一行数据,表头的 `增加一栏` 增加一栏到第一行,表体部分的 `增加一栏` 按钮到该栏下面,点击 `删除` 后该栏被删除并且不可恢复 2. 名称 字段名称,小写字母 + 下划线 3. 类型 字段类型,包含字段长度,例如 `char(28)`, `varchar(255)`, `int(10)`,有些字段类型不能指定长度,例如 `text`, `datetime` 等等 4. 默认值 SQL 语句里对应的 DEFAULT 默认值 5. 不是 null 勾选后 SQL 语句里自动生成 NOT NULL 6. 索引 勾选后自动生成普通索引 7. 备注 SQL 语句里对应的 COMMENT 备注 8. 扩展属性 一些不方便指定的属性,例如 `unsigned`, `auto_increment` ### 其他选项 1. 首页菜单 列表首页默认最多会有 5 个功能菜单,勾选禁用、恢复,会默认创建 `status` 字段,勾选删除、回收站会自动创建 `isdelete` 字段,勾选回收站会自动创建回收站,如果不勾选回收站,会将生成的 `th.html, td.html, form.html` 自动合并到 `index.html` 模板文件中 3. 验证器 勾选后自动创建验证器 2. 创建模型 * 创建模型(model) 勾选后会自动创建模型 * 自动时间戳记录 自动在模型开启时间戳写入配置,并且创建数据表时自动加入时间戳 (`create_time`、`update_time` 字段,`int(10) unsigned` 类型) 生成的控制器自动控制假删除与模糊搜索,目录在 controller,生成的模板文件在 view 文件夹下,最多默认生成 `index.html、th.html`、`td.html`、`form.html`、`edit.html`、`recyclebin.html`,其他模板文件的新建请参考这几个模板文件的格式,使用模板继承,提高代码利用率及可维护性 >[danger] 由于官方有些源码不支持tpadmin后台,已做修改,请参考 [概要 - 注意](220267)