laravel 软删除 所有方法
一、开启软删除
模型Models 实体类里 use SoftDeletes;
class News extends Model
{
public $table = 'news';
protected $guarded = [];
//开启软删除
use SoftDeletes;
}
二、表结构添加deleted_at 字段

三、如果不使用withTrashed(),已经进行了软删除的数据就查不出来,因为Laravel默认查询结果会自动剔除已被软删除的结果。
private function getNews(){
//withTrashed 显示所有的,包括已经进行了软删除的
$data = News::withTrashed()->get();
return $data;
}
四、onlyTrashed 只获取已删除的数据
private function getNews(){
//onlyTrashed 只显示软删除的数据
$data = News::onlyTrashed()->get();
return $data;
}
五、delete 或者 destroy 两种方法进行软删除
private function softDeleteInquiry($id){
//delete 软删除
News::where('id', '=', $id)->delete();
//destory 软删除
News::destroy($id);
}
软删除后,数据库字段 deleted_at 会变更时间,代表已经软删除了

六、forceDelete 永久删除数据
private function forceDelete($id){
News::withTrashed()->find($id)->forceDelete();
}
七、restore 恢复软删除数据
private function restoreDelete($id){
//恢复一条
News::where('id', '=', $id)->restore();
//全部恢复
News::withTrashed()->restore();
}