一、实现软删除
1、数据表增加一个字段delete_time 数据类型int,默认值NULL
2、模型层引入 softDelete 类;
3、此时你对数据库的删除操作会在delete_time字段添加时间戳,而不是将数据删除;(delete_time字段可以自定义名称,如上图)
4、注意,使用db()助手函数或Db:name()方法是会获取到软删除的数据
注意:使用软删除,数据库的delete_time 字段的默认值设置为NULL,否则获取不到数据,也删除不了数据
二、获取软删除的数据
1、withTrashed(true) //获取单条软删除数据;
使用方法: $res = User::withTrashed(true)->find(1)->getData();
2、onlyTrashed() //获取所有软删除数据
使用方法: $res = User::onlyTrashed()->select();
foreach($res as $val){
dump($val->getData());
}
3、恢复软删除方法:
1)将需要恢复的软删除数据获取出来;
2)使用更新方法,将这些数据的delete_time 字段更新为NULL;
三、使用软删除后又想真正删除数据
在删除方法加第二个参数true即可,如下:
$res = User::destroy(1,ture);
$res = User::where(id,"1")->delete(true);