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