thinkphp6批量软删除
关于thinkphp软删除的理解
软删除核心逻辑
数据库设置软删除字段,并将类型定义为
int(10)
软删除核心代码
// 自动时间戳类型未int protected $autoWriteTimestamp = 'int'; // 软删除,需要引入use think\model\concern\SoftDelete; use SoftDelete; // 软删除字段 protected $deleteTime = 'isdel'; // 软删除默认值 protected $defaultSoftDelete = 0;
单记录删除
— 方法一,非主键删除
$model = User::where('name','张三')->limit(1)->find(); if (!is_null){ $model->delete(); }
– 方法二,主键删除
$id = 5; User::destroy($id);
哈哈哈,这里注意!!!
如果直接使用:User::where('name','张三')->delete();
是删除不掉的!
如果直接使用:User::where('id',5)->destroy();
是要报错的!
搞笑不?!
批量删除最佳实践update
如果要批量软删除怎么办?
假如我们要批量软删除group_id = 2
的用户,那么就这样操作!
User::where('group_id', 2)->update(['isdel' => time()]);