????://創(chuàng)建圖書(shū)表 DROP TABLE IF EXISTS `library`; CREATE TABLE `library` ( `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMME
//創(chuàng)建圖書(shū)表 DROP TABLE IF EXISTS `library`; CREATE TABLE `library` ( `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '圖書(shū)id', `name` varchar(30) NOT NULL COMMENT '書(shū)名', `salary` int(6) unsigned NOT NULL DEFAULT '3000' COMMENT '價(jià)格', `delete_time` int(10) NOT NULL, `enter_time` int(10) NOT NULL, PRIMARY KEY (`staff_id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; //模型類(lèi)Library.php <?php namespace app\index\model; use think\Model; use think\model\concern\SoftDelete; /** * 軟刪除的步驟 *1.在表中添加一個(gè)字段:刪除時(shí)間(刪除標(biāo)志):delete_time *2.在模型類(lèi)添加一個(gè)屬性:$deleteTime='delete_time' *3.在模型中導(dǎo)入軟刪除的trait類(lèi)庫(kù):SoftDelete */ class Library extends Model { use SoftDelete; protected $table = 'library'; protected $pk ='library_id'; //設(shè)置刪除時(shí)間的字段名 protected $deleteTime ='delete_time'; //設(shè)置軟刪除字段的默認(rèn)值 protected $defaultSoftDelete = 0; } ?> //控制器類(lèi) <?php namespace app\index\Controller; use think\Controller; use think\Db; use app\index\model\Library as LibraryModel; class Library extends Controller { //實(shí)例化模型 public function instance(LibraryModel $library){//依賴(lài)注入 //$staff = new StaffModel();//模型實(shí)例化 //dump($staff->getName()); //新增一條數(shù)據(jù) $library->name = 'book_one'; $library->salary = 50; //新增操作 $library->save(); return '新增成功,id='.$library->library_id; } //模型查詢(xún) public function query() { //1單條記錄 //閉包:就是一個(gè)匿名回調(diào)函數(shù)(將函數(shù)作為參數(shù)進(jìn)行傳遞) $library = LibraryModel::get(2); echo $library->name; //閉包創(chuàng)建查詢(xún) $library = LibraryModel::get(function($query){ $query->where('salary','>',50); }); dump($library); //直接靜態(tài)調(diào)用Db類(lèi)查詢(xún)構(gòu)造器查詢(xún) LibraryModel::where('salary','>',50)->find(); //多條記錄查詢(xún):all //返回值是多個(gè)數(shù)組 $librarys=LibraryModel::all([1,2,3]); dump($librarys); //采用閉包來(lái)實(shí)現(xiàn)將請(qǐng)求變量注入到閉包條件中 $salary = $this->request->param('salary')?:4000; $librarys= LibraryModel::all(function($query) use ($salary){ query->where('salary','>',$salary); }); dump($librarys); } //模型更新 public function update() { //基于查詢(xún)的,不允許無(wú)條件更新 $library = LibraryModel::get(3); $library->name = 'longguniang';//更新記錄字段 $library->save(); //靜態(tài)方法:update(); LibraryModel::update( ['name'=>'xiaolongnv'], ['library_id'=>2] ); //復(fù)雜更新 //將年齡大于50的員工 工資加500 LibraryModel::where('library_id','>','5') ->update( ['salary'=>Db::raw('salary+500')] ); } public function create() { //save(); //create(數(shù)據(jù),字段); $data=['name'=>'sunwukong','salary'=>8888]; $field=['name','salary']; LibraryModel::create($data,$field); } //刪除記錄 public function delete() { $library = LibraryModel::destroy(1); } //軟刪除 public function softDelete() { LibraryModel::destroy(35); //軟刪除的數(shù)據(jù)普通查詢(xún)不可見(jiàn) $res =LibraryModel::where('library_id','<',40)->select(); //dump($res); //軟刪除的數(shù)據(jù)可見(jiàn) withTrashed(); $res =LibraryModel::withTrashed()->where('library_id','<',40)->select(); //dump($res); //查看回收站 $res =LibraryModel::onlyTrashed()->select(); } } ?>
?? ???:西門(mén)大官人?? ??:2019-04-02 09:39:16
???? ??:軟刪除的原理是更新數(shù)據(jù)庫(kù)中的一個(gè)字段,實(shí)際上并沒(méi)有從數(shù)據(jù)庫(kù)中刪除相關(guān)數(shù)據(jù)