zoukankan      html  css  js  c++  java
  • thinkphp软删除

    在thinkphp5中是通过softdelete trait实现数据软删除的。在使用中需要在模型定义中引入softdelete trait,并添加protected $deleteTime = 数据库字段,即可实现数据的软删除操作。软删除后,通过sql查看数据库表发现,在相应的字段中添加了时间戳内容。

    使用软删除的好处是在执行查询时,系统默认过滤掉软删除数据,会在sql语句中自动添加deleteTime is null.

    通常开发中我们会给类似status的字段标识来记录数据是否可用状态,软删除则是通过deletetime的isnul属性来判断,如果我们没有约定俗称数据要软删除,那么多人合作开发就会出现问题,因为“”软删除仅对模型的删除方法有效,如果直接使用数据库的删除方法则无效,例如下面的方式无效(将不会执行任何操作)”。

    $user = new User;
    $user->where('id',1)->delete();
    这句在tp5.1的手册中添加的,5.0手册没有这句
    因为使用了->where就是使用了Db类,所以这个删除不会进行任何操作
    thinkphp的delete方法默认没有条件是不执行删除的,软删除自带的destory是通过主键来删除的,所以批量删除我最后使用了update,修改状态的同时记录删除时间。
    方法没有高明之处,仅仅记录遇到的一个坑,大神可以指导,虚心人不怪


    BY QNAN
  • 相关阅读:
    jsonp的实现原理和缺点
    vue $set的使用初了解
    js将多维数组转换为一维数组
    微信小程序之页面打开数量限制
    ZOJ 1463 Brackets Sequence
    CSUOJ 1248 非变性聚丙烯酰胺凝胶电泳
    ZOJ 1524 Supermarket
    POJ 1012 Joseph
    ZOJ 1276 Optimal Array Multiplication Sequence
    POJ 1742 Coins
  • 原文地址:https://www.cnblogs.com/widgetbox/p/q_nan.html
Copyright © 2011-2022 走看看