如何掌握Laravel中模型的删除与软删除操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1001个文字,预计阅读时间需要5分钟。
相关主题
1.1 使用delete删除模型
删除模型很简单,先获取要删除的模型实例,然后调用delete方法即可:
$post = Post::find(5); if($post->delete()){ echo '删除文章成功!'; }else{ echo '删除文章失败!'; }
该方法返回true或false。
1.2 使用destroy删除模型
当然如果已知要删除的模型id的话,可以用更简单的方法destroy直接删除:
$deleted = Post::destroy(5);
你也可以一次传入多个模型id删除多个模型:
$deleted = Post::destroy([1,2,3,4,5]);
调用destroy方法返回被删除的记录数。
1.3 使用查询构建器删除模型
既然前面提到Eloquent模型本身就是查询构建器,也可以使用查询构建器风格删除模型,比如我们要删除所有浏览数为0的文章,可以使用如下方式:
$deleted = Models\Post::where('views', 0)->delete();
返回结果为被删除的文章数。
2、软删除实现
上述删除方法都会将数据表记录从数据库删除,此外Eloquent模型还支持软删除。
所谓软删除指的是数据表记录并未真的从数据库删除,而是将表记录的标识状态标记为软删除,这样在查询的时候就可以加以过滤,让对应表记录看上去是被”删除“了。
本文共计1001个文字,预计阅读时间需要5分钟。
相关主题
1.1 使用delete删除模型
删除模型很简单,先获取要删除的模型实例,然后调用delete方法即可:
$post = Post::find(5); if($post->delete()){ echo '删除文章成功!'; }else{ echo '删除文章失败!'; }
该方法返回true或false。
1.2 使用destroy删除模型
当然如果已知要删除的模型id的话,可以用更简单的方法destroy直接删除:
$deleted = Post::destroy(5);
你也可以一次传入多个模型id删除多个模型:
$deleted = Post::destroy([1,2,3,4,5]);
调用destroy方法返回被删除的记录数。
1.3 使用查询构建器删除模型
既然前面提到Eloquent模型本身就是查询构建器,也可以使用查询构建器风格删除模型,比如我们要删除所有浏览数为0的文章,可以使用如下方式:
$deleted = Models\Post::where('views', 0)->delete();
返回结果为被删除的文章数。
2、软删除实现
上述删除方法都会将数据表记录从数据库删除,此外Eloquent模型还支持软删除。
所谓软删除指的是数据表记录并未真的从数据库删除,而是将表记录的标识状态标记为软删除,这样在查询的时候就可以加以过滤,让对应表记录看上去是被”删除“了。

