<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 1.鉤子的使用 與controller 文件同級創建 behavior文件夾,創建類(此類不需要集成任何類),run()方法,將權限或者日志邏輯放在鉤子里。 ``` namespace app\admin\behavior; /*權限鉤子*/ public function run($params) { $aid=$params['id']; if($aid==1){ $per=(new PermissionModel())->field(['id','name','url','pid','type'])->select()->toArray();//獲取所有權限 }else{ $adminmodel=new AdminModel(); $role_ids=$adminmodel->where('id',$aid)->value('role_id'); $role_names=(new RoleModel())->where('id','in',$role_ids)->select(); $arr=[]; foreach($role_names as $k=>$v){ $perid=explode(',',$v['perid']); foreach($perid as $k1=>$v1){ array_push($arr,$v1); } } $arr=array_unique($arr); $per=(new PermissionModel())->field(['id','name','url','pid','type'])->where('id','in',$arr)->select()->toArray();//獲取所屬權限 } $arrs['url']='index/index'; $arrs['id']='9999'; $arrs['pid']='9999'; $arrs['name']='首頁'; $arrs['type']=0; array_push($per,$arrs); session('routes',$per); } ``` ### 2. 控制器中或者模型中都可以調用鉤子(此處是在登錄模型中調用) ~~~ use think\facade\Hook; //引入鉤子 session('aid',$info['id']); session('aname',$info['username']); $param['id']=$info['id']; //方法一: Hook::exec('app\admin\behavior\Rbac',$param); //直接執行鉤子 //方法二: Hook::add('app_init','app\admin\behavior\Rbac');//綁定鉤子 Hook::listen('app_init',$param);//監聽鉤子 ~~~ ### 3.使用場景: 權限菜單、日志文件 ### 4.驗證碼刷新 ``` ~~~ //視圖 <div class="row cl"> <div class="formControls col-xs-8 col-xs-offset-3"> <input class="input-text size-L" name="code" type="text" placeholder="驗證碼" style="width:150px;"> <img class= 'reloadverify' src="{:url('login/verify')}"> </div> </div> //js $(function() { var verifyimg = $(".reloadverify").attr("src"); $(".reloadverify").click(function() { if (verifyimg.indexOf('?') > 0) { $(".reloadverify").attr("src", verifyimg + '&random=' + Math.random()); } else { $(".reloadverify").attr("src", verifyimg.replace(/\?.*$/, '') + '?' + Math.random()); } }); }); //控制器 ~~~ /** * 驗證碼方法 */ use think\captcha\Captcha; public function verify(){ $config = [ 'fontSize' => 30,// 驗證碼字體大小 'length' => 2, // 驗證碼位數 'useNoise' => false, // 關閉驗證碼雜點 'useCurve'=>false //關閉雜線 ]; $captcha = new Captcha($config); return $captcha->entry(); } ~~~ ``` ### 5.公用方法 ~~~ /* * @params $str * @params $arr * @return bool * 判斷字符串是否在數組中,包括二維數組及多維數組*/ public function array_multi_search($str,$arr){ if(in_array($str,$arr)){ return true; } foreach($arr as $k=>$v){ if($this->array_multi_search($str,$v)){ return true; } } return false; } /* * @params $list * @params $pk * @params $pid * @params $root * @return array * 將數組轉為樹 * */ public function list_to_tree($list, $pk = 'id', $pid = 'pid', $root = 0){ $tree = array(); if (is_array($list)) { $refer = array(); foreach ($list as $key => $data) { $refer[ $data[ $pk ] ] = &$list[ $key ]; } foreach ($list as $key => $data) { // 判斷是否存在parent $parentId = $data[ $pid ]; if ($root == $parentId) { $tree[ $data[ $pk ] ] = &$list[ $key ]; } else { if (isset($refer[$parentId])) { $parent = &$refer[ $parentId ]; $parent['child'][] = &$list[ $key ]; } } } } return $tree; } ~~~ ### 6.上傳圖片(單文件) ~~~ /** * 上傳文件 */ use think\Request; public function upload() { // 獲取表單上傳文件 例如上傳了001.jpg $file = request()->file('file'); // 移動到框架應用根目錄/uploads/ 目錄下 $info = $file->move( '../public/uploads'); if($info){ $path='/uploads/'.$info->getSaveName(); return ['code'=>1,'msg'=>'上傳成功!','url'=>$path]; }else{ return ['code'=>0,'msg'=>$file->getError()]; } } ~~~ ### 7.tp5.1創建控制器、模型、驗證器 php think make:controller admin/Index php think make:model admin/IndexModel php think make:validate admin/IndexValidate ### 8.tp5.1 簡單配置 app.php ~~~ // 應用調試模式 'app_debug' => true, // 應用Trace 'app_trace' => true, // 默認AJAX 數據返回格式,可選json xml ... 'default_ajax_return' => 'json', ~~~ database.php ~~~ // 自動寫入時間戳字段 'auto_timestamp' => true, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', ~~~ ~~~
                  <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>

                              哎呀哎呀视频在线观看