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
  • 相关阅读:
    正则表达式
    js trim函数 去空格函数与正则集锦
    变量的作用域问题
    for...in 语句
    JS小案例分析
    JS动态创建元素的方式
    JS类的封装
    js操作节点小结
    节点兼容
    节点小结
  • 原文地址:https://www.cnblogs.com/widgetbox/p/q_nan.html
Copyright © 2011-2022 走看看