thinkphp5 软删除

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进行删除。
    }

}

猜你喜欢

转载自blog.csdn.net/zhouchang111/article/details/83743297