<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之旅 廣告
                ## **表單自動操作** ThinkLibrary 表單處理可能簡化數據保存與更新操作, 控制器只需要一行代碼,就可以實現數據添加與更新,如: ```php $this->_form('表名','模板名稱'); ``` 當然,這里使用了`HttpResponseException`直接輸出,不需要返回內容的。 需要給模板額外賦值,可以直接在控制器`$this->username='你的值';` 這樣在模板中可以直接使用`$username`變量; 如果提交的表單數據包含指定主鍵時則為更新操作,否則為添加記錄; 另外對表單還有`callback`操作(參數使用引用),統一名稱為`protected function _form_filter(&$data)` 另外關于模板的使用,可以參考下demo哦。 ----- #### 數據回調處理 對于表單操作,`Controller`內置了兩個回調方法,如: ```php [_ACTION]_form_filter($vo) [_ACTION]_form_result($result, $vo) ``` 當回調函數返回`false`時,`Controller`默認的行為將不會執行。 ----- #### 數據回調處理DEMO ~~~ /** * 添加拼團 * @auth true */ public function add() { $this->title = '添加拼團'; $this->_form($this->table, 'form'); } /** * 編輯拼團 * @auth true */ public function edit() { $this->title = '編輯拼團'; $this->_form($this->table, 'form'); } /** * 添加拼團商品表單處理 * @param array $data * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ protected function _form_filter(&$data) { if (empty($data['code'])) $data['code'] = Data::uniqidNumberCode(10); if ($this->request->isGet()) { $map = ['package_code' => $data['code']]; $data['list'] = Db::name('StoreGoodsGroupList')->where($map)->select(); } else { if (empty($data['logo'])) $this->error('請上傳商品圖標圖片'); if (empty($data['image'])) $this->error('請上傳商品展示圖片'); if (empty($data['item_number'])) $this->error('請添加套卡包含內容'); $all = []; foreach (array_keys($data['item_number']) as $key) $all[] = [ 'package_code' => $data['code'], 'goods_code' => $data['item_code'][$key], 'goods_type' => $data['item_type'][$key], 'goods_title' => $data['item_title'][$key], 'goods_number' => $data['item_number'][$key], ]; try { Db::transaction(function () use ($data, $all) { $map = ['package_code' => $data['code']]; Db::name('StoreGoodsGroupList')->where($map)->delete(); Db::name('StoreGoodsGroupList')->insertAll($all); }); } catch (Exception $e) { $this->error("商品詳情處理失敗,{$e->getMessage()}"); } } } /** * 表單結果處理 * @param boolean $result */ protected function _form_result($result) { if ($result && $this->request->isPost()) { $this->success('商品編輯成功!', 'javascript:history.back()'); } } ~~~ 如果是在 ThinkAdmin 后臺基于 admin.js 的情況下,可使用 form[data-auto] 來與 $this->_form 配合使用。
                  <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>

                              哎呀哎呀视频在线观看