abstract://创建图书表 DROP TABLE IF EXISTS `library`; CREATE TABLE `library` ( `library_id` int(4) unsigned NOT NULL AUTO_INCREMENT COMME
//创建图书表 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 '价格', `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.在表中添加一个字段:删除时间(删除标志):delete_time *2.在模型类添加一个属性:$deleteTime='delete_time' *3.在模型中导入软删除的trait类库:SoftDelete */ class Library extends Model { use SoftDelete; protected $table = 'library'; protected $pk ='library_id'; //设置删除时间的字段名 protected $deleteTime ='delete_time'; //设置软删除字段的默认值 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 { //实例化模型 public function instance(LibraryModel $library){//依赖注入 //$staff = new StaffModel();//模型实例化 //dump($staff->getName()); //新增一条数据 $library->name = 'book_one'; $library->salary = 50; //新增操作 $library->save(); return '新增成功,id='.$library->library_id; } //模型查询 public function query() { //1单条记录 //闭包:就是一个匿名回调函数(将函数作为参数进行传递) $library = LibraryModel::get(2); echo $library->name; //闭包创建查询 $library = LibraryModel::get(function($query){ $query->where('salary','>',50); }); dump($library); //直接静态调用Db类查询构造器查询 LibraryModel::where('salary','>',50)->find(); //多条记录查询:all //返回值是多个数组 $librarys=LibraryModel::all([1,2,3]); dump($librarys); //采用闭包来实现将请求变量注入到闭包条件中 $salary = $this->request->param('salary')?:4000; $librarys= LibraryModel::all(function($query) use ($salary){ query->where('salary','>',$salary); }); dump($librarys); } //模型更新 public function update() { //基于查询的,不允许无条件更新 $library = LibraryModel::get(3); $library->name = 'longguniang';//更新记录字段 $library->save(); //静态方法:update(); LibraryModel::update( ['name'=>'xiaolongnv'], ['library_id'=>2] ); //复杂更新 //将年龄大于50的员工 工资加500 LibraryModel::where('library_id','>','5') ->update( ['salary'=>Db::raw('salary+500')] ); } public function create() { //save(); //create(数据,字段); $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); //软删除的数据普通查询不可见 $res =LibraryModel::where('library_id','<',40)->select(); //dump($res); //软删除的数据可见 withTrashed(); $res =LibraryModel::withTrashed()->where('library_id','<',40)->select(); //dump($res); //查看回收站 $res =LibraryModel::onlyTrashed()->select(); } } ?>
Correcting teacher:西门大官人Correction time:2019-04-02 09:39:16
Teacher's summary:软删除的原理是更新数据库中的一个字段,实际上并没有从数据库中删除相关数据