摘要:图书表字段//模型<?phpnamespace app\index\model;/** * 实现软删除功能的步骤 * 1.在数据表中新增delete_time字段(字段名可自定义) * 2.在模型中导入trait类:SoftDelete * 3.设置模型属性 protected $deleteTime = '删除时间字段名'; 
图书表字段

//模型
<?php
namespace app\index\model;
/**
* 实现软删除功能的步骤
* 1.在数据表中新增delete_time字段(字段名可自定义)
* 2.在模型中导入trait类:SoftDelete
* 3.设置模型属性 protected $deleteTime = '删除时间字段名';
* 4.设置软删除字段默认值[可选]
*/
use think\Model;
use think\model\concern\SoftDelete;
class Book extends Model
{
use SoftDelete;
//设置数据表名
protected $table = 'book';
//设置主键,默认是id
protected $pk = 'id';
//设置软删除字段,配合软删除功能
protected $deleteTime = 'delTime';
//设置软删除字段的默认值
protected $defaultSoftDelete = 0;
}
//控制器
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Book as BookModel; //设置别名,防止与当前控制器冲突
class Book extends Controller
{
//查询
public function lst()
{
//获取所有的数据
$res=BookModel::all();
dump($res);
}
//查找
public function search()
{
//获取出版大于1950的数据.
// $res=BookModel::all(function($query){
// $query->where('bSetTime > 1950');
// });
//获取出版大于1950的数据,并且分类属于历史的
$res=BookModel::all(function($query){
$query->where('bSetTime > 1950')->where('bClass','=','历史');
});
dump($res);
}
//增加
public function add(){
//增加数据
$data=[
'bName'=>'九鼎记',
'bAuthor'=>'我吃西红柿',
'bSetTime'=>'2010',
'bClass'=>'玄幻'
];
//设置允许的字段
$field = ['bName','bAuthor','bSetTime','bClass'];
//添加到数据库
$res=BookModel::create($data, $field);
dump($res);
}
//修改
public function edit(){
//修改方法一
//修改id=5的数据中的出版时间为2006年;
// $id=5;
// $res=BookModel::get($id);
// $res->bSetTime=2006;
// $stas=$res->save();
// dump($stas);
// 方法2
$stas=BookModel::update(
['bSetTime'=> 2018], //数据使用原始值调用
function($query){ //条件使用闭包
$query->where('id','=',5);
}
);
dump($stas);
}
//删除
public function del(){
//BookModel::destroy(function($query){
// $query->where('id','=',5);
// });
//dump($stas);
//软删除
$stas=BookModel::destroy(1);
dump($stas);
}
}
批改老师:西门大官人批改时间:2019-02-17 09:57:51
老师总结:作业写的不错,实际上软删除比较通用的作法是增加一个bool类型的字段:is_del。你当前的设计也是可行的