ThinkPHP 3.2 添加软删除功能

作者:matrix 被围观: 4,183 次 发布时间:2016-12-31 分类:零零星星 | 无评论 »

这是一个创建于 2871 天前的主题,其中的信息可能已经有所发展或是发生改变。

类似于TP5框架的软删除功能

软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。

这里以数据库表Dynamics为例

执行SQL语句给表新建字段delete_time:
ALTER TABLE sx_dynamics ADD `delete_time` char(13) DEFAULT NULL COMMENT '删除时间';

新建Model层文件

<?php 
/**
 * 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

其他文章:
本文固定链接:https://www.hhtjim.com/thinkphp-3-2-add-soft-delete-functions.html
matrix
本文章由 matrix 于2016年12月31日发布在零零星星分类下,目前没有通告,你可以至底部留下评论。
转载请注明:ThinkPHP 3.2 添加软删除功能-HHTjim'S 部落格
关键字:,

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!