关于ThinkPHP5.0.*的delete软删除的BUG问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/duringnone/article/details/79156912

关于ThinkPHP5.0.*版本的delete软删除的BUG问题

(ThinkPHP5.0.14暂时没有发现有使用change属性)

1 .错误信息,即报错页面如下:

在软删除的文件中缺少一个$change的属性,导致报错,change属性不存在,报错所在文件的路径,ThinkPHP5.0.*下的
thinkphp/library/traits/model/SoftDelete.php

bug如图所示:

报错文件(都是源码根目录下的think目录下)及行数
![](https://img-blog.csdn.net/20180124231639758?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHVyaW5nbm9uZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
报错的具体行数63行:
![这里写图片描述](https://img-blog.csdn.net/20180124232551001?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHVyaW5nbm9uZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

#####2 . 解决方法如下:(在trait模拟多继承SoftDelete中定义一个change属性,注意:数据类型一定要为空数组)
![这里写图片描述](https://img-blog.csdn.net/20180124232612875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHVyaW5nbm9uZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
#####3 .关于软删除的具体用法,我上一篇博客中有介绍到软删除的相关使用和注意事项,以及示例, 或者可以参考手册(tp手册还是比较强大的,只是有时候某些功能之间存在冲突,需要注意手册中的提示信息)
4 . 注意点
1) ThinkPHp框架的源码Model类和SoftDelete类中都含有destroy和delete方法,其中destroy是静态方法,也就是说destroy只能被类调用,如: 
    特别提示:使用软删除之前必须在数据表对应的Model类中先引入 use traits\model\SoftDelete; [具体使用可参照我上一篇博客内容,在此不再重复] 
关于destroy方法:
    //硬删除
    User::destroy(['id'=>1]);   //调用的是Model中的destroy方法 

    //软删除
    $user = User::get(['uid'=>1]);  //调用的是SoftDelete中的destroy方法
    $user->destroy();  

关于delete方法:
    //硬删除
    User::delete(['id'=>1]);  //调用的是Model中的destroy方法 

    //软删除
    $user = User::get(['uid'=>1]);  //调用的是SoftDelete中的delete方法
    $user->delete();  

猜你喜欢

转载自blog.csdn.net/duringnone/article/details/79156912