1. 程式人生 > >關於ThinkPHP5.0.*的delete軟刪除的BUG問題

關於ThinkPHP5.0.*的delete軟刪除的BUG問題

關於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();