<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之旅 廣告
                模型的刪除和數據庫的刪除方法區別在于,模型的刪除會包含模型的事件處理。 ## 刪除當前模型 刪除模型數據,可以在查詢后調用`delete`方法。 ~~~ $user = User::find(1); $user->delete(); ~~~ > `delete`方法返回布爾值 ## 根據主鍵刪除 或者直接調用靜態方法(根據主鍵刪除) ~~~ User::destroy(1); // 支持批量刪除多個數據 User::destroy([1,2,3]); ~~~ >[danger] 當`destroy`方法傳入空值(包括空字符串和空數組)的時候不會做任何的數據刪除操作,但傳入0則是有效的 ## 條件刪除 還支持使用閉包刪除,例如: ~~~ User::destroy(function($query){ $query->where('id','>',10); }); ~~~ 或者通過數據庫類的查詢條件刪除 ~~~ User::where('id','>',10)->delete(); ~~~ >[danger] 直接調用數據庫的`delete`方法的話無法調用模型事件。 ## 軟刪除 ? 在實際項目中,對數據頻繁使用刪除操作會導致性能問題,軟刪除的作用就是把數據加上刪除標記,而不是真正的刪除,同時也便于需要的時候進行數據的恢復。 ? 要使用軟刪除功能,需要引入`SoftDelete` trait,例如`User`模型按照下面的定義就可以使用軟刪除功能: ? ~~~ <?php namespace app\model; ? use think\Model; use think\model\concern\SoftDelete; ? class User extends Model { use SoftDelete; protected $deleteTime = 'delete_time'; } ~~~ ? `deleteTime`屬性用于定義你的軟刪除標記字段,`ThinkORM`的軟刪除字段使用時間類型,用于記錄數據的刪除時間。可以使用`defaultSoftDelete`屬性來定義軟刪除字段的默認值,沒有設置的話默認值為`Null`。 ? ~~~ <?php namespace app\model; ? use think\Model; use think\model\concern\SoftDelete; ? class User extends Model { use SoftDelete; protected $deleteTime = 'delete_time'; protected $defaultSoftDelete = 0; } ~~~ ? > 可以用類型轉換指定軟刪除字段的類型,建議數據表的所有時間字段統一一種類型。 ? 定義好模型后,我們就可以使用: ? ~~~ // 軟刪除 User::destroy(1); // 真實刪除 User::destroy(1,true); ? $user = User::find(1); // 軟刪除 $user->delete(); // 真實刪除 $user->force()->delete(); ~~~ ? 默認情況下查詢的數據不包含軟刪除數據,如果需要包含軟刪除的數據,可以使用下面的方式查詢: ? ~~~ User::withTrashed()->find(); User::withTrashed()->select(); ~~~ ? 如果僅僅需要查詢軟刪除的數據,可以使用: ~~~ User::onlyTrashed()->find(); User::onlyTrashed()->select(); ~~~ ? 恢復被軟刪除的數據 ~~~php $user = User::onlyTrashed()->find(1); $user->restore(); ~~~ ? >[danger] 軟刪除的刪除操作僅對模型的刪除方法有效,如果直接使用數據庫的刪除方法則無效,例如下面的方式無效。 ? ~~~ $user = new User; $user->where('id',1)->delete(); ~~~ ? ## 最佳實踐 >[info] 刪除的最佳實踐原則是:如果刪除當前模型數據,用`delete`方法,如果需要直接刪除數據,使用`destroy`靜態方法。
                  <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>

                              哎呀哎呀视频在线观看