关于ThinkPHP5.0.*的delete软删除的BUG问题
(ThinkPHP5.0.14暂时没有发现有使用change属性)
1 .错误信息,即报错页面如下:
在软删除的文件中缺少一个$change的属性,导致报错,change属性不存在,报错所在文件的路径,ThinkPHP5.0.*下的
thinkphp/library/traits/model/SoftDelete.php
报错文件(都是源码根目录下的think目录下)及行数

报错的具体行数63行:

#####2 . 解决方法如下:(在trait模拟多继承SoftDelete中定义一个change属性,注意:数据类型一定要为空数组)

#####3 .关于软删除的具体用法,我上一篇博客中有介绍到软删除的相关使用和注意事项,以及示例, 或者可以参考手册(tp手册还是比较强大的,只是有时候某些功能之间存在冲突,需要注意手册中的提示信息)
4 . 注意点
1) ThinkPHp框架的源码Model类和SoftDelete类中都含有destroy和delete方法,其中destroy是静态方法,也就是说destroy只能被类调用,如:
特别提示:使用软删除之前必须在数据表对应的Model类中先引入 use traitsmodelSoftDelete; [具体使用可参照我上一篇博客内容,在此不再重复]
关于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();
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: thinkphp 时间戳转为日期时间格式
- 下一篇: .net C#实现Base64编码与解码