<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ##其他控制器 app\admin\controller\* 完美支持多級控制器,也完美支持多級控制器權限分配與校驗,完美支持多級控制器的代碼生成 ##繼承 如果需要在控制器中是用權限校驗,一定要繼承公共控制器 `(app\admin\Controller)`,如果不需要權限校驗,不用繼承公共控制器,比如 `Generate` (代碼自動生成控制器)、`Pub` (公開不授權控制器),如果需要繼承公共控制器使用其方法但不想權限校驗,請到extra目錄下修改 `rbac.php` 里的配置信息 >[info] 繼承公共控制器后仍然沒有 add、edit、index等方法,需要引入 traits ,詳情請看 [traits 多繼承 Controller](225023) ##屬性 和公共控制器一樣,用來定義是否開啟假刪除和屏蔽不需要的方法 ``` // 黑名單方法,禁止訪問某些方法 protected static $blacklist = []; // 是否刪除標志,0-正常|1-刪除|false-不包含該字段 protected static $isdelete = 0; ``` >[danger] 如果在控制器里不需要用到假刪除,并且數據表中沒有isdelete字段,一定要在控制器中將isdelete設為false,否則會導致報錯 > 如果不需要使用相關方法,可以使用 protected static $blacklist = ['delete', 'deleteForever']; 對某些方法屏蔽 ##方法 ###前置方法 before 支持 本框架前置方法 before 支持寫在公共控制器中,沒有修改官方源碼,使用方法請參考 [前置方法before支持](225018) ###過濾器 filter 用于 `index`、`recyclebin` 方法里過濾數據,**參數一定要使用取地址符&**,可以在此定義模糊查詢,比如: ~~~ protected function filter(&$map) { if ($this->request->param('title')) { $map['title'] = ["like", "%" . $this->request->param('title') . "%"]; } if ($this->request->param('name')) { $map['name'] = ["like", "%" . $this->request->param('name') . "%"]; } } ~~~ 完美支持在過濾里定義關聯查詢,使用到關聯查詢時不需要重寫index或其他相關方法,提高開發效率,使用關聯查詢時要定義 `$map['_relation'] = "關聯的表名,不含表名前綴"`,請參考 [ThinkPHP5 - 關聯預載入](http://www.hmoore.net/manual/thinkphp5/139045) ,`$map['_relation']` 的值與 `with` 方法的值一樣 `$map['_table'] = “當前表名,不含前綴"` 如果使用關聯查詢條件,要定義成 `$map['relation_table.field'] = '值'`,例如: ~~~ protected function filter(&$map) { if ($this->request->param('login_location')) { $map['login_location'] = ["like", "%" . $this->request->param('login_location') . "%"]; } // 關聯篩選 if ($this->request->param('title')) { $map['title'] = ["like", "%" . $this->request->param('title') . "%"]; } if ($this->request->param('name')) { $map['name'] = ["like", "%" . $this->request->param('name') . "%"]; } // 設置屬性 $map['_table'] = "login_log"; $map['_relation'] = "user"; $map['_order_by'] = "login_log.id desc"; } ~~~ ###ID 過濾器 filterId ID 過濾器用于過濾某些禁止操作的數據,通常和前置方法配合使用,例如: ``` /** * 禁用限制 */ protected function beforeForbid() { // 禁止禁用 Admin 模塊,權限設置節點 $this->filterId(1, '該用戶不能被禁用', '='); } ``` 其中 `filterId()` 方法的第三個參數 $method 可以設置成比較符號,也可以設置成回調函數,例如: ``` /** * 禁用限制 */ protected function beforeForbid() { // 禁止禁用 Admin 模塊,權限設置節點 $this->filterId([1, 2, 3, 4, 5, 6], '該記錄不能被禁用'); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看