1. 程式人生 > >thinkphp5 軟刪除

thinkphp5 軟刪除

1,介紹:軟刪除的作用就是把資料加上刪除標記,而不是真正的刪除,同時也便於需要的時候進行資料的恢復。

標記就是通過資料表中delete_time欄位設定軟刪除時候的時間從而遮蔽對這些資料的查詢等操作。沒有設定的記錄的delete_time欄位顯示的是null。

2,modul中設定

詳細介紹請仔細看註釋

 

 model類中寫:protected $autoWriteTimestamp='timeStamp'; 設定自動寫入的時間型別;

也可以在設定database.php中的設定:

 // 自動寫入時間戳欄位
 'auto_timestamp'  => 'timeStamp',

 這裡強調一些‘auto_timestamp’ 不能寫成ture,不起作用;

auto_timestamp 支援的欄位型別包括timestamp/datetime/int,和你資料表中的時間欄位型別保持一致就行。

namespace app\admin\model;
use think\Model;
use traits\model\SoftDelete; //要使用軟刪除功能,需要引入SoftDelete trait
class Projects extends Model{
    use SoftDelete; //首先要使用SoftDelete
    protected $pk='id'; //設定資料表的主鍵
    protected $table='projects'; //該資料表的名字
    protected $autoWriteTimestamp='timeStamp'; //自動寫入的時間型別
    protected $deleteTime = 'delete_time';//要用軟刪除,需要在自己的資料表中加入的欄位,名字可以自己取
    //下面兩項是軟刪除需要用到的如果不寫會報錯
    //update,create兩個欄位用不著可以直接寫null
    protected $updateTime = null;
    protected $createTime = null;
}

3,controller設定

class Project extends Controller{
    public function listDel(){
        $projects=model('Projects');//例項化model類
        $id=input('post.id');       //獲取ajax 傳遞過來的資料id
        $info=$projects->destroy($id); //對該條資料進行軟刪除,軟刪除必須用destroy進行刪除。
    }

}