##控制器
`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