批改状态:未批改
老师批语:
1.实例演示闭包实现查询
2.实例实现软删除功能并详细写出软删除的步骤
<?php
namespace app\index\controller;
//导入staff表模型
use app\index\model\Staff as StaffModel;
use think\Db;
class Staff{
// 查询
public function find(){
// 主键查询 get();返回一条数据
$st = StaffModel::get(1);
dump($st);
echo $st['name'].'<br>'; //数组
echo $st->name.'--'.$st->age.'--'.$st->address; //返回staff对象,显示对象中name属性;
//如果查询条件复杂可以使用闭包方式创建查询条件;
$st1 = StaffModel::get(function ($query){
$query->where('staff_id','>=','10')->where('age','>',24);
});
dump($st1);
echo $st1['name']; //返回staff对象,显示对象中name属性;
//查询构造器进行查询
$st2 = StaffModel::where('staff_id','>=','10')->find();
dump($st2); //返回staff对象,显示对象中name属性;
//查询全部 //根据staff_id;
$st3 = StaffModel::all([1,5,11]);
dump($st3);
$st4 = StaffModel::all(function ($query){
$query->where('staff_id','>=','10')->where('age','>=',18)->select();
});
dump($st4);
foreach ($st4 as $value) {
echo '姓名:'.$value['name'].' 年龄:'.$value['age'].'<br>';
}
}
//新增
public function add(StaffModel $staff){
// $staff->name='典韦';
// $staff->age=38;
// $staff->address='黄典坡';
// $staff->iphone='001100';
//
// $staff->save();
//批量增加
$list = [
['name'=>'老夫子','age'=>60,'address'=>'暂缺','iphone'=>01],
['name'=>'达摩','age'=>35,'address'=>'印度','iphone'=>001]
];
$staff->saveAll($list);
//和save方法不同的是,create方法返回的是当前模型的对象实例。
}
//和save方法不同的是,create方法返回的是当前模型的对象实例。
public function create(StaffModel $staff){
$stff = $staff::create(
['name'=>'王昭君','age'=>24]
);
echo $stff->name.'__'.$stff->age;
}
//修改
public function update(){
//先查询--后更新
// $st = StaffModel::get(28);
// $st->name='貂蝉';
// $st->age='18';
// $st->address='王府';
// $st->iphone='1200';
// $st->save();
//对于复杂的查询条件,可以使用查询构造器查询数据并更新;
// StaffModel::update(
// ['name'=>'关二爷'],
// ['staff_id'=>23]
// );
$st1 = StaffModel::where('staff_id','=',23)->where('name','=','关公')->find();
// $st1->name='关公';
$st1->name=Db::raw('name+2');
$st1->save();
}
public function del(StaffModel $staff){
// 用静态方法(根据主键删除)
$staff::destroy(27);
$staff::destroy(function ($query){
$query->where('staff_id','=',27);
});
}
//软删除
public function des(StaffModel $staff){
//软删除
$staff::destroy(31);
//真实删除
$staff::destroy(32,true);
}
public function sel(StaffModel $staff){
// $st = $staff::all();
//默认情况下查询的数据不包含软删除数据,
//如果需要包含软删除的数据,可以使用下面的方式查询:
// $st = $staff::withTrashed()->select();
// 仅仅需要查询软删除的数据,可以使用:
//$st = $staff::onlyTrashed()->select();
//恢复被软删除的数据
$st = $staff::onlyTrashed()->find(31);
$st->restore();
dump($st);
}
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号