午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

軟刪除

軟刪除

版本 調整功能
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

文檔
目(mu)錄

深色
模式

切換
寬度