##控制器
`app\admin\controller\NodeMap`
##作用
建立一個操作日志的描述模板,將操作日志記錄的節點圖轉化為可讀易懂的語言
##字段
| 名稱 | 類型 | 說明 |
| --- | --- | --- |
| id | int(10) unsigned NOT NULL AUTO_INCREMENT | 主鍵 id |
| module | char(6) NOT NULL | 節點圖模塊 |
| map | varchar(255) NOT NULL | 節點圖 |
| is_ajax | tinyint(1) unsigned NOT NULL DEFAULT '0' | 是否是 ajax 請求 |
| comment | varchar(255) NOT NULL | 節點圖描述,即將節點圖轉化為可讀易懂的語言 |
##使用說明
###id
讓它自增,別管它
###module
當前模塊名,例如 admin
###map
節點圖,包含控制器的全名和方法名,嚴格大小寫,例如 `AdminGroup/index`,`one.two.three.Forth/index`
>[info] 請注意多級控制器的寫法,控制器名和方法名全部是通過 `\think\Request::instance()->controller()` 和 `\think\Request::instance()->action()` 獲取的,嚴格控制大小寫
###is_ajax
是否是 ajax 請求,很多的操作 ajax 請求和 GET 請求的業務邏輯不一樣
###comment
**重點**, 這里要使用描述 + 占位符來填寫節點圖描述,這里拿個例子來說明一下:
`{:__user__}編輯了用戶{:id},修改真實名字為{:realname}`
比如這個,`{:__user__}` 表示操作用戶的用戶名占位符,`{:realname}` 表示請求參數中變量 `\think\Request::instance()->param('realname')` 的占位符,如果變量不存在,該占位符會保持為 `{:realname}` 不變,這實際上是變相使用的 ThinkPHP5 的多語言支持
>[info] `{:__user__}編輯了用戶{:id},修改真實名字為{:realname}` 正常情況下對應的某條描述為 `超級管理員編輯了用戶2,修改真實名字為測試`
##黑科技
這么多節點,幾百個,我是懶得一個一個找一個一個加的,特別在存在類繼承的情況下,所有為了方便大家添加節點圖,可以點擊 `自動導入`,會自動導入非 ajax 請求的節點,自動排除已導入的節點,不會對之前導入或添加的節點有任何影響,導入后再一個一個根據需要修改節點描述就行,對于 ajax 請求的節點圖,就必須自己手動添加了,想更偷懶,那就 clone 源碼然后自己修改成更智能的方式吧
- 概要
- 開始使用
- 寫在前面
- 目錄結構
- 模板主題支持
- 前置方法before支持
- 數據返回
- 異常接管
- Rbac 權限管理
- 開始使用
- 用戶管理
- 分組管理
- 節點管理
- 角色管理
- 使用流程
- 其他
- 代碼自動生成 v1.2
- 示例一 - 一級控制器
- 示例二 - 多級控制器
- 示例三 - 從數據表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模擬命令行模式
- 代碼自動生成
- 示例一 - 一級控制器
- 示例二 - 多級控制器
- 控制器
- 公共控制器
- traits 多繼承 Controller
- 公開不授權控制器
- 其他控制器
- 標簽擴展
- 模板
- 網站操作日志
- 節點圖
- 行為驅動
- 其他后端方法
- Excel一鍵導出
- Excel一鍵導入
- 文件下載
- 郵件發送
- 七牛文件上傳
- id加密
- 前端
- ajax請求
- 表單校驗
- 豐富彈層
- 異步操作
- 表格溢出
- 隨機字符串
- 自動面包屑導航
- 動態加載文件
- 文件上傳
- Tab 切換
- 圖片預覽
- 二維碼生成
- 日歷組件
- 升級指導
- 更新日志
- FAQ