>[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.hmoore.net/manual/thinkphp5/118007),多級控制器要求目錄名全部小寫,目錄名之間用點隔開,控制器名按照上面要求,例如 `one.two.three.FourFiveSix`,對應 `one/two/three` 目錄下的 `FourFiveSix` 控制器,具體請看 [ThinkPHP5 - 多級控制器](http://www.hmoore.net/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