1,介绍:软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。
标记就是通过数据表中delete_time字段设置软删除时候的时间从而屏蔽对这些数据的查询等操作。没有设置的记录的delete_time字段显示的是null。
2,modul中设置
详细介绍请仔细看注释
model类中写:protected $autoWriteTimestamp='timeStamp'; 设置自动写入的时间类型;
也可以在设置database.php中的设置:
// 自动写入时间戳字段
'auto_timestamp' => 'timeStamp',
这里强调一些‘auto_timestamp’ 不能写成ture,不起作用;
auto_timestamp 支持的字段类型包括timestamp/datetime/int,和你数据表中的时间字段类型保持一致就行。
namespace app\admin\model;
use think\Model;
use traits\model\SoftDelete; //要使用软删除功能,需要引入SoftDelete trait
class Projects extends Model{
use SoftDelete; //首先要使用SoftDelete
protected $pk='id'; //设置数据表的主键
protected $table='projects'; //该数据表的名字
protected $autoWriteTimestamp='timeStamp'; //自动写入的时间类型
protected $deleteTime = 'delete_time';//要用软删除,需要在自己的数据表中加入的字段,名字可以自己取
//下面两项是软删除需要用到的如果不写会报错
//update,create两个字段用不着可以直接写null
protected $updateTime = null;
protected $createTime = null;
}
3,controller设置
class Project extends Controller{
public function listDel(){
$projects=model('Projects');//实例化model类
$id=input('post.id'); //获取ajax 传递过来的数据id
$info=$projects->destroy($id); //对该条数据进行软删除,软删除必须用destroy进行删除。
}
}