ijava学习网> 知识分享> Web 服务> Laravel数据删除和软删除的实例

Laravel数据删除和软删除的实例

时间: 2018-11-09 09:43:07 标签

Laravel中使用了一个日期字段作为标识状态,这个日期字段可以自定义,这里我们使用deleted_at,如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空。

1、删除模型

//1、第一种方法Post::find(5)->delete();
//2、第二种方法Post::destroy(5)
//3、第三种方法Post::where('views', 0)->delete();

2、软删除

数据库中添加deleted_at字段
Model中使用SoftDeletes,具体可参考源码Illuminate\Database\Eloquent\SoftDeletes

use Illuminate\Database\Eloquent\SoftDeletes;class Post extends Model{use SoftDeletes;

按照1中常规的方法删除即可就被软删除了,find,get,all都将无法查找这些些被软删除后的数据

3、软删除查询

需要在普通的查询前调用withTrashed

Post::withTrashed()->find('1');
Post::withTrashed()->where('id','>',1)->get();
Post::withTrashed()->all();

4、软删除恢复

//恢复单个模型
Post::withTrashed()->find(1)->restore();
//恢复多个模型
Post::withTrashed()->where('id','>',1)->restore();
//恢复所有模型
Post::withTrashed()->restore();

5、强制删除

//删除单个模型
Post::withTrashed()->find(1)->forceDelete();
//删除多个模型
Post::withTrashed()->where('id','>',1)->forceDelete();
//删除所有模型
Post::withTrashed()->forceDelete();




版权说明| 关于ijava| 合作伙伴| 联系我们| 网站地图| 招贤纳士

Copyright © 2017 www.ijava.com All Rights Reserved 版权所有•ijava学习网 京ICP备14061482号-18         官方QQ:3325669927

ijava学习网提供免费java教程和大量java面试题库,给高级会员提供免费的java培训,同时提共一些java开发项目和java下载,java工程师,java菜鸟们快来哦。记住我们的网站:www.ijava.com