軟刪除
軟刪除
| 版本 | 調整功能 |
|---|---|
| 5.0.2 |
deleteTime 屬性改為非靜態定義 |
在實際項目中,對數(shu)據(ju)頻繁使用刪除(chu)操作會導致性(xing)能問題(ti),軟刪除(chu)的作用就是把數(shu)據(ju)加(jia)上刪除(chu)標記,而不是真正的刪除(chu),同時(shi)也便于需(xu)要(yao)的時(shi)候進(jin)行數(shu)據(ju)的恢復。
要使用軟刪除功能,需要引入SoftDelete trait,例如User模型按照下(xia)面的定(ding)義(yi)就可(ke)以使(shi)用軟刪除功能:
namespace app\index\model;
use think\Model;
use traits\model\SoftDelete;
class User extends Model
{
use SoftDelete;
protected $deleteTime = 'delete_time';
}
5.0.2版本之前deleteTime屬性必須使用static定義。
deleteTime屬性用于定義你的軟刪除標記字段,ThinkPHP5的軟刪除功能使用時間戳類型(數據表默認值為Null),用于記錄數據的刪除時間(jian)。
可以用類型轉換指定(ding)軟(ruan)刪(shan)除(chu)字段的類型,建議數據(ju)表的所有時間字段統一一種(zhong)類型。
定義好模型后,我們就可以使(shi)用:
// 軟刪除
User::destroy(1);
// 真實刪(shan)除
User::destroy(1,true);
$user = User::get(1);
// 軟刪除
$user->delete();
// 真(zhen)實刪除
$user->delete(true);
默認(ren)情況下(xia)查詢的(de)數據不包(bao)含(han)軟刪除數據,如果需要(yao)包(bao)含(han)軟刪除的(de)數據,可以(yi)使用下(xia)面的(de)方式(shi)查詢:
User::withTrashed()->find();
User::withTrashed()->select();
如果僅僅需(xu)要查詢(xun)軟刪除的數據,可以使用(yong):
User::onlyTrashed()->find();
User::onlyTrashed()->select();
如果你的模型定義了
base基礎查詢,請確保添(tian)加軟刪除的基礎查詢條件(jian)。
文檔最后更新時間:2018-04-26 10:06:47
未解決你的問題?請到「問答社區」反饋你遇到的問題
