多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
##公共控制器 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 } ```