thinkphp軟刪除


在thinkphp5中是通過softdelete trait實現數據軟刪除的。在使用中需要在模型定義中引入softdelete trait,並添加protected $deleteTime = 數據庫字段,即可實現數據的軟刪除操作。軟刪除后,通過sql查看數據庫表發現,在相應的字段中添加了時間戳內容。

使用軟刪除的好處是在執行查詢時,系統默認過濾掉軟刪除數據,會在sql語句中自動添加deleteTime is null.

通常開發中我們會給類似status的字段標識來記錄數據是否可用狀態,軟刪除則是通過deletetime的isnul屬性來判斷,如果我們沒有約定俗稱數據要軟刪除,那么多人合作開發就會出現問題,因為“”軟刪除僅對模型的刪除方法有效,如果直接使用數據庫的刪除方法則無效,例如下面的方式無效(將不會執行任何操作)”。

$user = new User; $user->where('id',1)->delete();
這句在tp5.1的手冊中添加的,5.0手冊沒有這句
因為使用了->where就是使用了Db類,所以這個刪除不會進行任何操作
thinkphp的delete方法默認沒有條件是不執行刪除的,軟刪除自帶的destory是通過主鍵來刪除的,所以批量刪除我最后使用了update,修改狀態的同時記錄刪除時間。
方法沒有高明之處,僅僅記錄遇到的一個坑,大神可以指導,虛心人不怪


BY QNAN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM