ThinkPHP 3.2 添加软删除功能
作者:matrix 被围观: 3,741 次 发布时间:2016-12-31 分类:零零星星 | 无评论 »
这是一个创建于 2070 天前的主题,其中的信息可能已经有所发展或是发生改变。
类似于TP5框架的软删除功能
软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。
这里以数据库表Dynamics为例
执行SQL语句给表新建字段delete_time:
ALTER TABLE sx_dynamics ADD `delete_time` char(13) DEFAULT NULL COMMENT '删除时间';
新建Model层文件
代码语言:javascript复制<?php
/**
* Created by PhpStorm.
* User: pang
*/
namespace HomeModel;
use ThinkModel;
use ThinkPage;
class DynamicsModel extends Model
{
/**
* 重写Model删除方法 实现TP5类似的软删除
*
* @param bool $trueDel 是否真实删除数据
* @return mixed
*/
public function delete($trueDel = false)
{
if ($trueDel) {
return parent::delete();
}
$data['delete_time'] = time();
return parent::save($data);
}
}
在Controller层
//使用D()方法实例化Model 调用重写的delete 软删除方法
D('dynamics')->where($w)->delete();
查询的where条件:
代码语言:javascript复制$where['delete_time'] = array('exp', 'IS NULL');//没有删除的数据
$where['delete_time'] = array('exp', 'IS NOT NULL');//已经删除的数据
-EOF-
for mac