如何借助deletedAt字段实现数据的假删和真删?

在cms系统中,文章假删至回收站,再到回收站真删是一个非常常见的功能。之前遇到这种问题,我都是手动在文章表里设置一个delete字段,通过布尔值来区分正常文章和假删文章,如果需要真删,则删除整条信息。

但是现在有一个需求就是要使用mysql自带的deletedAt字段来处理删除的业务。在文章的model中我写了:

    {
      timestamps: true,
      paranoid: true,
      deletedAt: 'deletedAt' //在数据库中为deleted_at字段
    }

这样正常展示的文章deleted_at为NULL,一篇文章通过destroy的接口时,就会被打上时间戳,deleted_at就会有记录,查看接口已经找不到这篇文章了,但是在数据库还是能看到的。
那么问题来了,我在回收站界面通过什么条件能够找到被假删的数据呢?以及这些数据怎么进一步执行真删的操作呢?
补充:
通过del()接口并不能真的删掉这个数据,它只是被打上了时间戳,并不能消失。

阅读 3.7k
2 个回答

指的是查询SQL?

WHERE deleted_at IS NOT NULL 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题