摘要://创建图书表 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();
}
}
?>
批改老师:西门大官人批改时间:2019-04-02 09:39:16
老师总结:软删除的原理是更新数据库中的一个字段,实际上并没有从数据库中删除相关数据