thinkphp5 軟刪除
阿新 • • 發佈:2018-11-10
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進行刪除。
}
}