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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 混合操作 * * * * * 前面大家只了解到TP5的DB操作與OneBase的DB操作,實際上因為OB的繼承關系及設計在同一個模型對象上可以進行混合操作。 下面來看一下使用場景 ![](https://box.kancloud.cn/4ae983ec6ff0cee3e74a540d9c2feda9_1917x641.jpg) ![](https://box.kancloud.cn/74715676e04ef5a50d0f0df9a3e46a12_662x311.jpg) 圖中可以看到公會添加的功能,前面都是公會信息,但是公會需要與用戶進行關聯并允許登錄后臺,這樣就涉及到 添加會員與添加公會 兩個業務邏輯。 若將兩個業務進行拆分,先到會員管理中添加會員,再到公會管理中添加公會并關聯會員,這樣會對產品體驗上有一定的影響,雖然開發者覺得合理但是對于系統運營者來講他卻需要操作兩遍新增功能,且不在同一個位置,操作起來會比較耽誤時間。 下面問題來了。 從表結構中可以看到 公會表中有個member_id字段,用于保存管理員會員ID。 那我添加公會怎么知道會員ID? 這意味著咱們得先添加會員,但是在OneBase封裝的setInfo方法中并沒有返回主鍵ID。 這里有3個方案,比如 在ModelBase中新增一個通用方法,調整一下setInfo參數或返回值,OneBase封裝方法與TP5方法混合使用。 ~~~ /** * 公會添加 */ public function conferenceAdd($data = []) { if (!$this->validateConference->scene('add')->check($data)) { return [RESULT_ERROR, $this->validateConference->getError()]; } $func = function () use ($data) { $member['nickname'] = $member['username'] = $data['username']; $member['password'] = data_md5_key($data['password']); $member['leader_id'] = MEMBER_ID; $member['is_inside'] = DATA_NORMAL; $data['member_id'] = $this->modelMember->insertGetId($member); $data['source_member_id'] = MEMBER_ID; action_log('新增', '新增會員,username:' . $member['username']); $this->modelWgConference->setInfo($data) && action_log('新增', '新增公會,conference_name:' . $data['conference_name']); }; return closure_list_exe([$func]) ? [RESULT_SUCCESS, '操作成功', url('conferenceList')] : [RESULT_ERROR, '公會添加失敗']; } ~~~ 上面的代碼中可以看到setInfo方法的使用,但是仔細觀察會發現insertGetId方法并不在ModelBase類中。 這就是混合操作,OneBase會優先查找自己的方法,若存在則執行,若不存在則會從TP5的Model類中尋找。 所以有了這個特性 當開發者不想新增方法也不想動OneBase的方法時,就可以使用混合操作。^_^
                  <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>

                              哎呀哎呀视频在线观看