作者:matrix
被围观: 3,370 次
发布时间:2016-12-31
分类:零零星星 |
无评论 »
💡NOTICE:这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。
类似于TP5框架的软删除功能
软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。
这里以数据库表Dynamics为例
执行SQL语句给表新建字段delete_time:
ALTER TABLE sx_dynamics ADD `delete_time` char(13) DEFAULT NULL COMMENT '删除时间';
新建Model层文件
/**
* Created by PhpStorm.
* User: pang
*/
namespace Home\Model;
use Think\Model;
use Think\Page;
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条件:
$where['delete_time'] = array('exp', 'IS NULL');//没有删除的数据
$where['delete_time'] = array('exp', 'IS NOT NULL');//已经删除的数据
-EOF-
for mac