abstrakt://創(chuàng)建圖書表 DROP TABLE IF EXISTS `library`; CREATE TABLE `library` ( `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMME
//創(chuàng)建圖書表 DROP TABLE IF EXISTS `library`; CREATE TABLE `library` ( `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '圖書id', `name` varchar(30) NOT NULL COMMENT '書名', `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; //模型類Library.php <?php namespace app\index\model; use think\Model; use think\model\concern\SoftDelete; /** * 軟刪除的步驟 *1.在表中添加一個(gè)字段:刪除時(shí)間(刪除標(biāo)志):delete_time *2.在模型類添加一個(gè)屬性:$deleteTime='delete_time' *3.在模型中導(dǎo)入軟刪除的trait類庫(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; } ?> //控制器類 <?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){//依賴注入 //$staff = new StaffModel();//模型實(shí)例化 //dump($staff->getName()); //新增一條數(shù)據(jù) $library->name = 'book_one'; $library->salary = 50; //新增操作 $library->save(); return '新增成功,id='.$library->library_id; } //模型查詢 public function query() { //1單條記錄 //閉包:就是一個(gè)匿名回調(diào)函數(shù)(將函數(shù)作為參數(shù)進(jìn)行傳遞) $library = LibraryModel::get(2); echo $library->name; //閉包創(chuàng)建查詢 $library = LibraryModel::get(function($query){ $query->where('salary','>',50); }); dump($library); //直接靜態(tài)調(diào)用Db類查詢構(gòu)造器查詢 LibraryModel::where('salary','>',50)->find(); //多條記錄查詢: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() { //基于查詢的,不允許無(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ù)普通查詢不可見(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(); } } ?>
Korrigierender Lehrer:西門大官人Korrekturzeit:2019-04-02 09:39:16
Zusammenfassung des Lehrers:軟刪除的原理是更新數(shù)據(jù)庫(kù)中的一個(gè)字段,實(shí)際上并沒(méi)有從數(shù)據(jù)庫(kù)中刪除相關(guān)數(shù)據(jù)