介绍
使用Laravel5.1框架怎么实现模型软删除操作?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1普通删除
在软删除之前咱先看看普通的删除方法:
1.1直接通过主键删除
,, public function getDelete () {才能 ,,,的文章:破坏(1); ,,,的文章:摧毁([1,2,3]); ,,}
1.2获取模型后删除
,, public function getDelete () {才能 ,,,article 美元;=,文章:找到(3); ,,,美元文章→删除(); ,,}
1.3批量删除
,, public function getDelete () {才能 ,,,//,返回一个整形,删除了几条数据 ,,,deleteRows 美元;=,文章::,(& # 39;id # 39; & # 39;祝辞& # 39;(3)→删除(); ,,,dd ($ deleteRows);,,//2 ,,}
2软删除
2.1准备工作
如果你要实现软删除你应该提前做3件事情:
- <李>
添加deleted_at到模型的美元日期属性中。
李> <李>在模型中使用照亮\数据库\雄辩\ SoftDeletes这个特质
李> <李>保证你的数据表中有deleted_at列如果没有就添加这个列。
李>首先我们做第一步和第二步:
& lt; php ? namespace 应用; use 阐明\雄辩的\ \数据库模型; use 阐明数据库\ \雄辩\ SoftDeletes; class Article  extends 模型 {//,才能使用SoftDeletes这个特征 use 才能;SoftDeletes;//才能,白名单 protected 才能;fillable 美元;=,(& # 39;标题# 39;,,& # 39;身体# 39;];//才能,日期 protected 才能;dates 美元;=,(& # 39;deleted_at& # 39;); }
然后我们生成一个迁移文件来增加deleted_at列到数据表:
class InsertDeleteAtIntroArticles extends 迁移 { ,/* * ,,*,Run 从而迁移。 ,,* ,,*,@return 空白 ,,*/public 才能;function () {才能 ,,,模式:表(& # 39;文章# 39;,,function (Blueprint $表),{ ,,,,,表→美元softDeletes (); ,,,}); ,,} ,/* * ,,*,Reverse 从而迁移。 ,,* ,,*,@return 空白 ,,*/public 才能;function 下() {才能 ,,,模式:表(& # 39;文章# 39;,,function (Blueprint $表),{ ,,,,,表→美元dropSoftDeletes (); ,,,}); ,,} }
2.2实现软删除
现在我们就可以删除一条数据试试啦:
,, public function getDelete () {才能 ,,,article 美元;=,文章:第一(); ,,,美元文章→删除(); 以前,,}>↑当我们删了这条数据后在数据表中的表示是deleted_at不为空它是一个时间值,当delete_at不为空时证明这条数据已经被软删除了。
2.3判断数据是否被软删除
if (文章→美元垃圾()){ ,,,,,echo & # 39;这个模型已经被软删除了& # 39;; ,,,}2.4查询到被软删除的数据
有一点需要注意,当数据被软删除后它会自动从查询数据中排除,就是它无法被一般的查询语句查询到。当我们想要查询软删除数据时可以使用withTrashed方法
,, public function getIndex () {才能 ,,,article 美元;=,文章:withTrashed()→第一(); ,,,if (文章→美元垃圾()){ ,,,,,echo & # 39;被软删除了& # 39;,,,//,代码会执行到这一行 ,,,} 以前,,}>我们还可以使用onlyTrashed,它和withTrashed的区别是它只获得软删除的数据。
,, public function getIndex () {才能 ,,,articles 美元;=,文章:onlyTrashed()→地方(& # 39;id # 39; & # 39; & lt; & # 39;, & # 39; 10 & # 39;)→得到()→toArray (); ,,,dd(文章); ,,}2.5恢复被软删除的数据
,, public function getIndex () {才能 ,,,article 美元;=,文章:withTrashed()→找到(6); ,,,文章→美元恢复(); ,,}2.6永久删除数据
,, public function getIndex () {才能 ,,,article 美元;=,文章:withTrashed()→找到(6); ,,,文章→美元forceDelete (); 以前,,}>关于使用Laravel5.1框架怎么实现模型软删除操作问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
使用Laravel5.1框架怎么实现模型软删除操作