Thinkphp 软删除

263 阅读1分钟

​ 本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、模型

要使用软删除功能,需要引入SoftDelete trait,例如User模型按照下面的定义就可以使用软删除功能、可以支持defaultSoftDelete属性来定义软删除字段的默认值

<?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();

二、sql 字段软删除

<?php

##字段软删除
Db::name('user')->where('id',1)->update(['is_del'=>1]);
##查询正常数据
Db::name('user')->where('is_del',0)->select();

三、总结

一般都是用模型删除的 但是也是看实际应用的情况