##公共控制器
app\admin\Controller
>[info] 需要权限控制的控制器必须继承与该控制器
##属性
```
// 视图类实例
protected $view;
// Request实例
protected $request;
// 黑名单方法,禁止访问某些方法
protected static $blacklist = [];
// 是否删除标志,0-正常|1-删除|false-不包含该字段
protected static $isdelete = 0;
```
##方法列表
>[info] 去除之前版本将方法全部写入到此控制器不好控制某些特殊控制器的安全的弊端,将所有公共操作方法写入到 traits 多继承中
```
/**
* 构造器方法
* 实现权限检测、黑名单方法检测、前置方法实现
*/
public function __construct() { }
/**
* 自动搜索查询字段,给模型字段过滤
* 搜索页面提交的参数并且过滤,生成查询条件和筛选条件
*/
protected function search($model) { }
/**
* 获取模型
* 自动识别当前控制器是否有定义模型,如果有定义模型则返回模型,没有就返回 Db 对象
*/
protected function getModel($controller = '') { }
/**
* 获取实际的控制器名称 (应用于多层控制器的场景)
*/
protected function getRealController($controller = '') { }
/**
* 默认更新字段方法
* 默认更新字段方法,是 delete、recycle、forbid、resume 的公共方法
* @param string $field 更新的字段
* @param string|int $value 更新的值
* @param string $msg 操作成功提示信息
* @param string $pk 主键,默认为主键
* @param string $input 接收参数,默认为主键
*/
protected function updateField($field, $value, $msg = "操作成功", $pk = "", $input = "") { }
/**
* 格式化表名,将 /. 转为 _ ,支持多级控制器
*/
protected function parseTable($name = '') { }
/**
* 格式化类名,将 /. 转为 \\
*/
protected function parseClass($name = '') { }
/**
* 未登录处理
*/
protected function notLogin() { }
/**
* 权限校验
*/
protected function auth() { }
/**
* 过滤禁止操作某些主键
* @param $filterData
* @param string $error
* @param string $method
* @param string $key
*/
protected function filterId($filterData, $error = '该记录不能执行此操作', $method = 'in_array', $key = 'id') { }
/**
* 根据表单生成查询条件
* 进行列表过滤
*
* 过滤条件
* $map['_table'] 可强制设置表名前缀
* $map['_relation'] 可强制设置关联模型预载入(需在模型里定义)
* $map['_field'] 可强制设置字段
* $map['_order_by'] 可强制设置排序字段(field asc|desc[,filed2 asc|desc...]或者false)
* $map['_paginate'] 是否开启分页,传入false可以关闭分页
*
* @param object $model 数据对象
* @param array $map 过滤条件
* @param string $field 查询的字段
* @param string $sortBy 排序
* @param boolean $asc 是否正序
* @param boolean $return 是否返回数据,返回数据时返回paginate对象,不返回时直接模板赋值
* @param boolean $paginate 是否开启分页
*/
protected function datalist($model, $map, $field = '*', $sortBy = '', $asc = false, $return = false, $paginate = true) { }
```
>[danger] 之前版本对数据表进行 CURD 的方法全部移动到 traits 中,使用多继承就可以直接使用这些方法了,详情请看 [traits 多继承 Controller](225023)
```
class AdminUser extends Controller
{
use \app\admin\traits\controller\Controller;
// your code
}
```
- 概要
- 开始使用
- 写在前面
- 目录结构
- 模板主题支持
- 前置方法before支持
- 数据返回
- 异常接管
- Rbac 权限管理
- 开始使用
- 用户管理
- 分组管理
- 节点管理
- 角色管理
- 使用流程
- 其他
- 代码自动生成 v1.2
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 示例三 - 从数据表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模拟命令行模式
- 代码自动生成
- 示例一 - 一级控制器
- 示例二 - 多级控制器
- 控制器
- 公共控制器
- traits 多继承 Controller
- 公开不授权控制器
- 其他控制器
- 标签扩展
- 模板
- 网站操作日志
- 节点图
- 行为驱动
- 其他后端方法
- Excel一键导出
- Excel一键导入
- 文件下载
- 邮件发送
- 七牛文件上传
- id加密
- 前端
- ajax请求
- 表单校验
- 丰富弹层
- 异步操作
- 表格溢出
- 随机字符串
- 自动面包屑导航
- 动态加载文件
- 文件上传
- Tab 切换
- 图片预览
- 二维码生成
- 日历组件
- 升级指导
- 更新日志
- FAQ