abstract:<?Phpnamespace app\index\model;use think\model\concern\SoftDelete;use think\Model;class Staff extends Model{ use SoftDelete; //设置数据表的名称 protected $table = 'my_sjb'; //设置
<?Php
namespace app\index\model;
use think\model\concern\SoftDelete;
use think\Model;
class Staff extends Model
{
use SoftDelete;
//设置数据表的名称
protected $table = 'my_sjb';
//设置主键:默认为id
protected $pk = 'id';
//设置删除时间的字段
protected $deleteTime = 'delete_time';
//设置软删除字段的默认值
protected $defaultSoftDelete = 0;
}
<?php
namespace app\index\controller; //命名空间
use think\Controller; //系统控制器
use app\index\model\Staff as StaffModel; //导入模型 设置模型别名 防止冲突
class Staff extends Controller
{
//实例化模型
//public function instance()
public function instance(StaffModel $staff) //依赖注入
{
//$staff = new StaffModel(); //模型实例化
dump($staff->getname());//查询模型名称
//新增一条记录
$staff->name = 'yang';
$staff->sex = 0;
$staff->age = 30;
$staff->salary = 12000;
//新增操作
$staff->save();
return '新增成功,id='.$staff->id;
}
//模型查询
public function query()
{
//1.查询单挑记录 get(主键/闭包)
// $staff = StaffModel::get(18);
// dump($staff);
// echo $staff['name'],'<br/>';
// echo $staff->name,'<br/>';
//用闭包来创建查询条件
// $staff = StaffModel::get(function($query){
// $query->where('sex',0)->where('salary','>',8000);
// });
// dump($staff);
//直接静态调用Db类的查询构造器进行查询
// StaffModel::where('sex',0)
// ->where('salary','>',8000)
// ->find();
// dump($staff);
//2.多条记录的查询all
//$staffs = StaffModel::all();//不传参查询所有
//$staffs = StaffModel::all([18,19,20]);
// $staffs = StaffModel::all(function($query){
// $query->where('age','<',40)->where('salary','>',3000);
// });
//dump($staffs);
// foreach ($staffs as $staff){
// echo '编号:'.$staff->id.'<br/>';
// echo '姓名:'.$staff->name.'<br/>';
// echo '年龄:'.$staff->age.'<br/>';
// echo '性别:'.$staff->sex.'<br/>';
// echo '工资:'.$staff->salary.'<hr/>';
// }
//使用闭包来实现将请求变量注入到闭包条件中
$age = $this->request->param('age')?:40;
$salary = $this->request->param('salary')?:3000;
$staffs = StaffModel::all(function($query) use ($age,$salary){
$query->where('age','<',$age)->where('salary','>',$salary);
});
dump($staffs);
}
//模型的更新 必须基于查询 不允许无条件
public function update()
{
// $staff = StaffModel::get(18);
// $staff->name = '大胡子';
// $staff->save();
//支持静态方法更新
// StaffModel::update(
// ['name'=>'张飞'],
// ['id'=> 18]
// );
//复杂更新
// StaffModel::update(
// ['salary'=>\think\Db::raw('salary+500')],
// function($query){
// $query->where('age','>',50);
// }
// );
//查询构造器更新
StaffModel::where('age','>=',50)
->data(['salary'=>\think\Db::raw('salary+500')])
->update();
}
//添加数据
public function create()
{
$data = [
'name'=>'唐十一',
'age'=>28,
'sex'=>0,
'salary'=>6500
];
//$field = ['name','age'];
//StaffModel::create($data,$field);
//查询构造器查询数据
StaffModel::insert($data);
}
//模型删除
public function delete()
{
//destroy 主键删除
//StaffModel::destroy(30);([1,2,3])//支持数组
//删除条件推荐使用闭包
StaffModel::destroy(function($query){
$query->where('age','>',50)->where('salary','>',5000);
});
//查询构造器实现
StaffModel::where('age','>=',50)
->where('salary','>',5000)
->delete();
}
//软删除:
public function SoftDelete()
{
StaffModel::destroy(18);
//软删除在普通查询中不可见
//$res = StaffModel::where('id','<=',20)->select();
//想看见被删除的数据
//$res = StaffModel::withTrashed()->where('id','<=',20)->select();
//只查看回收站数据
$res = StaffModel::onlyTrashed()->select();
dump($res);
}
}
Correcting teacher:查无此人Correction time:2019-06-10 09:48:12
Teacher's summary:完成的不错。数据都要保存下来,所以才使用软删除。继续加油。