前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP 3.2 添加软删除功能

ThinkPHP 3.2 添加软删除功能

作者头像
HHTjim 部落格
发布2022-09-26 10:56:57
4240
发布2022-09-26 10:56:57
举报
文章被收录于专栏:HHTjim'S 部落格

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 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条件:

代码语言:javascript
复制
$where['delete_time'] = array('exp', 'IS NULL');//没有删除的数据
$where['delete_time'] = array('exp', 'IS NOT NULL');//已经删除的数据

-EOF-

for mac

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ThinkPHP 3.2 添加软删除功能
    • 新建Model层文件
      • 在Controller层
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档