Laravel5.1 模型–删除
今天我们来看看如何删除数据
delete删除模型
获取到模型,执行delete方法就好:
复制代码
public function destroy(id)
{article = Article::findOrFail(
id);if(
article->delete()){
echo ‘删除成功’;
}else{
echo ‘删除失败’;
}
}
复制代码
delete方法会返回一个bool值。
destory删除模型
相比较delete而言更加简洁,只要你知道id字段就可以使用:
$delete = \App\Models\Article::destroy(3);
// 也可以接受一个数组
// delete = \App\Models\Article::destroy([1,5,6,7]);
return “删除了{delete}条数据”;
通过某些条件删除模型
我们可以使用where来满足我们的业务逻辑:
// deleted来记录删除了多少条数据
$deleted = \App\Models\Article::where('id','<',10)->delete();
今日焦点—软删除实现
软删除其实是一种假删除,它的核心理念是 加入了一个标记字段,如果已经被软删除,这个字段的值就会改变 每次我们查询时就会过滤这条数据,看上去就像已经被删除了一样。
在laravel中 以一个日期字段作为标识,这个日期字段是可以自定义的,我们一般使用 delete_at,当记录被软删除时 delete_at会赋予删除时间,否则它便是空的。 如果我们要使用软删除,需要做一些配置:
要让Eloquent模型支持软删除,还要做一些设置。首先在模型类中要使用SoftDeletestrait,该trait为软删除提供一系列相关方法,具体可参考源码Illuminate\Database\Eloquent\SoftDeletes,此外还要设置$date属性数组,将deleted_at置于其中:
复制代码