<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 功能強大 支持多語言、二開方便! 廣告
                ## 查找并更新 在取出數據后,更改字段內容后更新數據。 ``` $user = UserModel::get(1); $user->user_nickname = '老貓'; $user->user_email = 'genmaowan@163.com'; $user->save(); ``` ## 直接更新數據 也可以直接帶更新條件來更新數據 ``` $user = new UserModel; // save方法第二個參數為更新條件 $user->save([ 'user_nickname' => '老貓', 'user_email' => 'genmaowan@163.com' ], ['id' => 1]); ``` 上面兩種方式更新數據,如果需要過濾非數據表字段的數據,可以使用: ``` $user = new UserModel(); // 過濾post數組中的非數據表字段數據 $user->allowField(true)->save($_POST,['id' => 1]); ``` 如果你通過外部提交賦值給模型,并且希望指定某些字段寫入,可以使用: ``` $user = new UserModel(); // post數組中只有user_nickname和user_email字段會寫入 $user->allowField(['user_nickname','user_email'])->save($_POST, ['id' => 1]); ``` 批量更新數據 可以使用saveAll方法批量更新數據,例如: ``` $user = new UserModel; $users = [ ['id' => 1, 'user_nickname' => '老貓', 'user_email' => 'genmaowan@163.com'], ['id' => 2, 'user_nickname' => '老貓666', 'user_email' => 'genmaowan666@163.com'] ]; $user->saveAll($users); ``` ## 通過數據庫類更新數據 必要的時候,你也可以使用數據庫對象來直接更新數據,但這樣就無法使用模型的事件功能。 ``` $user = new UserModel; $user->where('id', 1) ->update(['user_nickname' => '老貓666']); ``` 或者使用: ``` $user = new UserModel; $user->update(['id' => 1, 'user_nickname' => '老貓666']); ``` 如果傳入update的數據包含主鍵的話,可以無需使用where方法。 靜態方法 模型支持靜態方法直接更新數據,例如: ``` UserModel::where('id', 1) ->update(['user_nickname' => '老貓666']); ``` 或者使用: ``` UserModel::update(['id' => 1, 'user_nickname' => '老貓666']); ``` 閉包更新 可以通過閉包函數使用更復雜的更新條件,例如: ``` $user = new UserModel; $user->save(['user_nickname' => '老貓666'],function($query){ // 更新status值為1 并且id大于10的數據 $query->where('status', 1)->where('id', '>', 10); }); ``` ## 自動識別 我們已經看到,模型的新增和更新方法都是save方法,系統有一套默認的規則來識別當前的數據需要更新還是新增。 實例化模型后調用save方法表示新增; 查詢數據后調用save方法表示更新; 調用模型的save方法后表示更新; 如果你的數據操作比較復雜,可以顯式的指定當前調用save方法是新增操作還是更新操作。 顯式更新數據: ``` // 實例化模型 $user = new UserModel; // 顯式指定更新數據操作 $user->isUpdate(true) ->save(['id' => 1, 'user_nickname' => '老貓666']); ``` 顯示新增數據: ``` $user = UserModel::get(1); $user->user_nickname = '老貓666'; // 顯式指定當前操作為新增操作 $user->isUpdate(false)->save(); ``` > 注意不要在一個模型實例里面做多次更新,會導致部分重復數據不再更新,正確的方式應該是先查詢后更新或者使用模型類的update方法更新。 如果你調用save方法進行多次數據寫入的時候,需要注意,第二次save方法的時候必須使用isUpdate(false),否則會視為更新數據。
                  <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>

                              哎呀哎呀视频在线观看