<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                強烈建議下載安裝下面這個插件參考修改體驗 [https://x1.php168.com/appstore/content/show/id/491.html](https://x1.php168.com/appstore/content/show/id/491.html) 在開發的過程中會發現,后臺與會員中心很多功能都是沒有模板的,那就是使用了自動表單器 不用創建模板,而使用表單器生成模板的好處就是: 讓開發者把精力都花在邏輯處理上,力氣要花在刀刃上, 而沒必要浪費太多的精力去制作模板。 *自動表單器的核心文件是*, 這里采用的是PHP新特性 trait 方便前臺與后臺分別調用. `\application\common\traits\AddEditList.php` 里邊包含了幾個最常使用的方法, 新增 add() 修改 edit() 列表index() 刪除 delete() 如果是簡單的使用,你直接繼承,不需要重寫, 如果是復雜的應用,你可能需要重寫一下這幾個方法 以下就是一個使用示范 ~~~ <?php namespace app\admin\controller; use app\common\controller\AdminBase; use app\common\traits\AddEditList; //引用表單器核心文件 use app\common\model\Hook as HookModel; use app\common\model\Hook_plugin as Hook_pluginModel; class Hook extends AdminBase { use AddEditList; //使用表單器里邊的所有方法 protected $validate = ''; protected $model; //操作數據表的模型 //下面這個是修改與新增要用到的表單元素. protected $form_items = [ ['text', 'name', '接口標志'], ['text', 'about', '接口描述'], ['radio', 'ifopen', '是否啟用', '', ['禁用','啟用'], 1], ]; protected $list_items; //列表頁元素 protected $tab_ext; //其它擴展元素 protected function _initialize() //初始化 { parent::_initialize(); //父級初始化不能漏掉 $this->model = new HookModel(); //要操作的數據表模型 //其它附屬擴展元素 $this->tab_ext = [ 'page_title'=>'預埋接口管理', //頁面標題 //頁面頭部按鈕 'top_button'=>[ [ 'title'=>'添加接口', 'url'=>url('add'), 'icon' => 'fa fa-plus-circle', 'class' => '', ], [ 'title'=>'鉤子管理(實現接口的功能)', 'url'=>url('hook_plugin/index'), 'icon' => 'fa fa-microchip', 'class' => '', ], ], ]; //列表元素,因為這里用到了函數,所以必須要在這里定義 $this->list_items = [ ['name', '接口標志', 'text'], ['about', '接口描述', 'text'], ['num', '實現接口的鉤子個數', 'callback',function($key,$rs){ $num = Hook_pluginModel::where('hook_key',$rs['name'])->count('id'); return $num?'<a title="查看接口(鉤子)插件" icon="fa fa-microchip" class="btn btn-xs btn-default" href="'.url('hook_plugin/index',['hook_key'=>$rs['name']]).'" target="_self"><i class="fa fa-microchip"></i> '.$num.'個</a>':'無插件可用'; },'__data__'], ['ifopen', '是否啟用', 'switch'], ]; } } ~~~ 注意事項:使用表單器的步驟 第一步,引用表單器文件 `use app\common\traits\AddEditList; ` 第二步,在當前類里邊的最開始位置,加入如下代碼,才能正式使用 `use AddEditList;` 第三步,必須要指定操作哪個數據表模型 比如上面的示范是 `use app\common\model\Hook as HookModel;` 第四步,實例化數據表模型 `$this->model = new HookModel(); ` 第五步,列表頁的元素 表單新增 與 修改的元素,你可以在 類的屬性那里定義,比如 ~~~ protected $form_items = [ ['text', 'name', '接口標志'], ['text', 'about', '接口描述'], ['radio', 'ifopen', '是否啟用', '', ['禁用','啟用'], 1], ]; ~~~ 也可以在 ~~~ protected function _initialize() { } ~~~ 控制器初始化的方法也里定義. 另外也可以在具體的 index() add() edit() 這幾個方法里邊定義. 注意,如果要用到函數的話,就不能在類的屬性那里定義 ,必須要在 `_initialize()` 或 ` index()` `add()` `edit()` 方法里邊定義 注意:表單器最基本的兩個屬性是 `protected $form_items` 與 ` protected $list_items` 。 `protected $form_items` 是新增 或者是修改 用到的表單元素, 如果修改與增加不一樣的話,可以分別在對應的add() edit() 方法里邊重新定義. ` protected $list_items` 是列表頁要顯示的元素 另外還有一個用得比較的擴展元素如下: ~~~ $this->tab_ext = [ 'page_title'=>'預埋接口管理', //頁面標題 //頂部菜單 'top_button'=>[ [ 'title'=>'添加接口', 'url'=>url('add'), 'icon' => 'fa fa-plus-circle', 'class' => '', ], [ 'title'=>'鉤子管理(實現接口的功能)', 'url'=>url('hook_plugin/index'), 'icon' => 'fa fa-microchip', 'class' => '', ], ], ]; ~~~ 當然,如果太特殊的頁面,還是建議你創建一個模板,那樣更靈活。 你可以按對應的目錄創建一個模板,系統就會調用你創建的模板,而不會再使用表單器自動生成模板. 實際上后臺對應的模板目錄是: ~~~ \template\admin_style\default(可以是其它風格目錄)\admin\alonepage(即控制器的文件名)\add.htm(即方法名) ~~~ 模塊的話將是 ~~~ \template\admin_style\default(可以是其它風格目錄)\bbs(頻道名稱)\sort(即控制器的文件名)\add.htm(即方法名) ~~~ 自動表單器主要針對兩種情況, 一種是填寫表單,他包括新增與修改 另一種是列表 ,所以對于后臺操作來說,基本上就是這兩種 填寫表單一般是以下這種形式 ~~~ protected $form_items = [ ['text', 'title', '標題'], ['text', 'descrip', '分享描述'], ['image', 'picurl', '分享圖片'], ['text', 'template', '模板路徑','路徑要包含風格名,只能放在index_style目錄下,比如:“qiboxx/index/alonepage/pc_index.htm”'], ['radio', 'status', '是否啟用', '', [1 => '啟用', 0 => '禁用'], 1], ['ueditor', 'content', '內容'], ]; ~~~ 上面是類的初始化就定義了,在方法里邊可以這樣 ~~~ $this->form_items = [ ['text', 'title', '標題'], ['text', 'descrip', '分享描述'], ['image', 'picurl', '分享圖片'], ['text', 'template', '模板路徑','路徑要包含風格名,只能放在index_style目錄下,比如:“qiboxx/index/alonepage/pc_index.htm”'], ['radio', 'status', '是否啟用', '', [1 => '啟用', 0 => '禁用'], 1], ['ueditor', 'content', '內容'], ['callback','pay_status', '支付與否','',function($value,$info){ return $value; }], ]; ~~~ 第一項是表單類型,目前有以下表單類型,有些是用得非常多,有些就用得非常少.大家掌握常用的幾個即可 ~~~ 'text' => '單行文本', 'textarea' => '多行文本', 'ueditor' => 'UEditor 百度編輯器', 'radio' => '單選按鈕', 'checkbox' => '多選按鈕', 'checkboxtree' => '樹狀多選按鈕', 'select' => '下拉框', 'image' => '單張圖片', 'file' => '單個文件', 'images' => '多張圖片', 'images2' => '多張圖片附帶介紹及網址', 'files' => '多個文件', 'money' => '金額', 'number' => '數字', 'time' => '時間', 'date' => '日期', 'datetime' => '日期+時間', 'static' => '只讀文本', 'hidden' => '隱藏', 'array' => '數組', 'usergroup' => '用戶組', 'password' => '密碼', 'icon' => '字體圖標', 'bmap' => '百度地圖', 'callback' => '自定義匿名函數', ~~~ 第二項就是表單字段的變量名 第三項就是表單的標題描述 第四頂是詳細說明描述 第五項是非常特殊的, 他有可能是表單的默認值,也有可能是表單的參數.還有可能是**匿名函數** 對于參數而言,比如一般用得比較多的就是單選\多選\下拉\ 要給他們賦值一個數組,這樣他們才有選擇項, 所以對他們來說第五項就是數組.其它形式的表單類型大部分都是表單默認值 如果第5項是參數的話,那第6項就是默認值. * * * * * * * * * * 下面接著再講解列表項 列表項是類似下面的格式 ~~~ $this->list_items = [ ['text', '描述', 'text'], ['title', '單獨頁名稱', 'link',iurl('index/alonepage/index',['id'=>'__id__']),'_target'], ['posttime', '發布時間', 'datetime'], ['status', '是否啟用', 'switch'], ]; ~~~ 第一項是數據表的字段名 第二項是名稱 第三項就是列表里展示的形式. 他的展示形式常用有以下幾種 text 這是最常用,直接顯示文本 text.edit 可修改的文本 link 文本加超級鏈接 datetime 日期 select 可更換的下拉菜單 select2 不可更換的下拉菜單 yesno 是否圖標顯示 switch 是更換的切換是或否選項 username 顯示用戶名 callback 回調函數 設置link的話.還要設置第4項為超級鏈接地址 設置為 select select2 還要給第4項賦值數組,才知道對應的數字顯示什么文本 設置為 callback 還要給第4項添加一個回調函數
                  <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>

                              哎呀哎呀视频在线观看