使用Laravel5.1框架怎么实现模型软删除操作

  介绍

使用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框架怎么实现模型软删除操作