>[info] 仅限 tpadmin v1.1
代码自动生成功能能根据配置信息自动生成一个带添加、编辑、删除、回收站等与数据库对应的 CURD 基本操作,并且自动生成相应的前端、后端数据校验,对任何不合法数据说 No,生成的代码带规范的缩进、注释,方便根据需求二次编辑,也方便团队根据同一套代码规范开发
##使用前准备
>[info] 代码自动生成有可选项涉及数据表创建,请保证连接数据库的用户有权限对数据表重命名、删除、创建
>[info] 代码自动生成需要对目录有可写权限,请 Linux\Mac OS 系统用户修改相应权限,没有权限时会抛出错误并且给出应使用的命令,由于每个人安装的服务器环境不同,可能权限修改为 755、777 都不好用,可以在生成代码后再次修改代码权限,或者将本地用户加入到 apache、php-fpm、nginx 用户组,Windows 系统没测试过,如果 Windows 系统有问题请留言反馈
##配置
修改 `extend/Generate.php` 模型里的属性 `$blacklistName` 和 `$blacklistTable` 可以设置控制器和数据表黑名单,不允许创建这些控制器和数据表,防止代码被替换
```
// 控制器黑名单
private $blacklistName = ['AdminGroup', 'AdminNode', 'AdminRole', 'AdminUser', 'AdminNodeLoad', 'Pub', 'Demo', 'Generate', 'Index', 'LogLogin', 'Ueditor', 'one.two.three.Forth'];
// 数据表黑名单
private $blacklistTable = ['admin_group', 'admin_node', 'admin_role', 'admin_user', 'admin_node_load', 'log_login', 'file'];
```
##开始使用
访问 [http://your.doamin.com/admin/generate](http://tpadmin.demo.tianpian.net.cn/admin/generate)
>[warning] 上线部署时可以修改 admin/controller 目录下的 Generate 类名为 Generate1,只要修改成不是Generate的任何字符都行,或者部署时不要将此控制器部署到线上环境
##使用说明
1. 控制器 - 名称
控制器名称必须符合 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)
>[info] ThinkPHP5 官方支持了多级控制器,但是在多级控制器使用 `think\Url::build()` 方法生成链接时会出现 bug ,请参考 [概要 - 注意](220267),自动生成的模型和验证器也同样使用相同规则生成对应多级控制器的目录,避免类名一样出现冲突,导致代码被替换
2. 控制器 - 标题
即控制器的中文名称,例如节点管理,该名称会自动备注到生成的控制器、验证器、模型、数据表、字段中
3. 表单元素 - 中文名称
生成的列表是一个表格,该中文名称即是表格对应列的列名,添加、编辑页的标签名,数据表字段的字段备注,以及验证器里对应字段的中文名
4. 表单元素 - 字段
生成列表表格对应列的字段名,数据表的字段名,验证器里的字段名,添加、编辑页表单控件的name名称
5. 表单元素 - 字段类型
添加、编辑页面表单控件的类型,对于 `radio`、`checkbox`、`select` 带选择功能的控件默认只生成一个控件模板,其他信息自己去代码中完善,对于 `id`、`isdelete`、`create_time`、`update_time` 字段会进行特殊处理,此处定义不会生成添加、编辑页的表单控件,表单控件任选一个即可
6. 表单元素 - 筛选排序
选择是,会在生成的列表页给该字段添加一个排序筛选的功能,点击后可以进行排序,即 `SQL` 语句里的 `asc|desc`
7. 表单元素 - 表单搜索
选择是,会在列表页和回收站自动生成一个表单搜索控件,默认自动生成模糊搜索 (%TEXT%),如果需要精确匹配请生成代码后到相应控制器删除掉模糊搜索条件,自动变成精确匹配,并且会自动进行关键词高亮
8. 表单元素 - 是否必填
选择是,会在前端生成相应的必填 * 号提示和正则校验,在验证器里也会相应生成require校验规则,实现前后端同时校验
9. 表单元素 - 验证规则
`validform` 插件的 `datatype` 属性,可以填写正则或内置的验证规则,此处填写后会在验证器里自动生成验证规则,由于验证规则复杂,验证器里只自动生成 `require` 验证,其他验证规则默认留空,如有需要请到验证器里完善
> `validform` 插件官方地址: [http://validform.rjboy.cn/](http://validform.rjboy.cn/) ,具体文档参考此处
10. 表单元素 - 验证为空提示信息
`validform` 插件里的 `nullmsg` 属性
11. 表单元素 - 格式错误提示信息
`validform` 插件里的 `errormsg` 属性
12. 数据表 - 创建数据表
会自动根据表字段里的配置生成相应的数据表,默认不会强制删除前表,字段可以点击后面的同步字段按钮同步上面表单元素里配置的字段,默认自动根据需要创建 `id`、`status`、`isdelete`、`create_time`、`update_time` 字段
13. 数据表 - 强制建表
勾选此项后会删除前表,然后创建新的表
> 由于删表不支持事物,但我做了一些处理,建表失败会回滚原表的表结构,数据不会回滚,此问题稍后会进行解决
14. 表字段
和数据库里创建表一样,但会根据情况自动创建 `id`、`status`、`isdelete`、`create_time`、`update_time` 字段,这些字段可以不用手动填写,也不会根据配置生成这些字段,这些字段只能通过场景自动生成
15. 首页菜单
列表首页默认最多会有 5 个功能菜单,勾选禁用、恢复,会默认创建 `status` 字段,勾选删除、回收站会自动创建 `isdelete` 字段,勾选回收站会自动创建回收站,全部勾选生成的模板默认直接继承公共模板文件
16. 创建模型
勾选后会自动创建模型,并且自动加入时间戳 (`create_time`、`update_time` 字段,`int(10) unsigned` 类型) 写入与更新
17. 创建验证器
勾选后自动创建验证器
生成的控制器自动控制假删除与模糊搜索,目录在 controller,生成的模板文件在 view 文件夹下,最多默认生成 `index.html、th.html`、`td.html`、`form.html`、`edit.html`、`recyclebin.html`,其他模板文件的新建请参考这几个模板文件的格式,使用模板继承,提高代码利用率及可维护性
>[danger] 由于官方有些源码不支持tpadmin后台,已做修改,请参考 [概要 - 注意](220267)
- 概要
- 开始使用
- 写在前面
- 目录结构
- 模板主题支持
- 前置方法before支持
- 数据返回
- 异常接管
- Rbac 权限管理
- 开始使用
- 用户管理
- 分组管理
- 节点管理
- 角色管理
- 使用流程
- 其他
- 代码自动生成 v1.2
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 示例三 - 从数据表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模拟命令行模式
- 代码自动生成
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 控制器
- 公共控制器
- traits 多继承 Controller
- 公开不授权控制器
- 其他控制器
- 标签扩展
- 模板
- 网站操作日志
- 节点图
- 行为驱动
- 其他后端方法
- Excel一键导出
- Excel一键导入
- 文件下载
- 邮件发送
- 七牛文件上传
- id加密
- 前端
- ajax请求
- 表单校验
- 丰富弹层
- 异步操作
- 表格溢出
- 随机字符串
- 自动面包屑导航
- 动态加载文件
- 文件上传
- Tab 切换
- 图片预览
- 二维码生成
- 日历组件
- 升级指导
- 更新日志
- FAQ