vaeThink-模型删除数据


vaeThink 使用模型之前需要事先use 模型到当前类,例如:use \app\common\model\Article;你也可以直接在实例化的时候加入路径,例如:$model = new \app\common\model\Article;
主键删除
  $articleModel = new Article;
  // 删除一条
  $articleModel->delete(1);
  // 删除多条
  $articleModel->delete([1,2,3]);
      
条件删除
  $articleModel = new Article;
  $articleModel->where('id',1)->delete();
  $articleModel->where('id','<',10)->delete(); 
      
软删除
在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。
  //首先我们需要在模型中定义
  namespace app\index\model;

  use think\Model;
  use traits\model\SoftDelete;

  class Article extends Model
  {
      use SoftDelete;
      protected $deleteTime = 'delete_time';
  } 
      
对应的数据表中要确保有delete_time字段,类型为时间戳类型,默认为Null。
  $articleModel = new Article;
  // 软删除
  $articleModel->destroy(1);
  // 真实删除
  $articleModel->destroy(1,true);
  //默认情况下查询的数据不包含软删除数据,如果需要包含软删除的数据,可以使用下面的方式查询:
  $articleModel->withTrashed()->find();
  $articleModel->withTrashed()->select();
  //如果仅仅需要查询软删除的数据,可以使用:
  $articleModel->onlyTrashed()->find();
  $articleModel->onlyTrashed()->select();
      
vaeThink 想你所想。