批改状态:合格
老师批语:
闭包实现查询
<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Staff as StaffModel; //设置模型类的别名
class Staff extends Controller
{
public function query()
{
//单条get
$staff = StaffModel::get(function($query) {
$query->where('sex', 1)->where('age','>=',25);
});
dump($staff);
echo '<hr>';
//多条all
$staffs = StaffModel::all(function($query) {
$query->where('salary','>=',5000);
});
dump($staffs);
//采用闭包来实现将请求变量注入到闭包条件中
// $this->request : 请求对象
$age = $this->request->param('age') ?: 30;
$salary = $this->request->param('salary') ?: 5000;
$staffs = StaffModel::all(function($query) use ($age, $salary) {
$query->where('age','<',$age)->where('salary','>',$salary);
});
dump($staffs);
}
}点击 "运行实例" 按钮查看在线实例
软删除:
步骤:
软删除步骤:
1.在表中添加一个字段:删除时间(删除标志): delete_time(10位或以上)
2.在模型类添加一个属性: $delteTime = 'delete_time'
3.在模型中导入软删除的trait类库: SoftDelete
4.最新版本支持设置软删除的默认字段值
<?php
namespace app\index\model;
use think\Model;
use think\model\concern\SoftDelete; //trait方法集
class Staff extends Model
{
use SoftDelete;
//设置数据表的名称
protected $table = 'staff';
//设置主键:默认为id
protected $pk = 'staff_id';
//设置删除时间的字段名
protected $deleteTime = 'delete_time';
//设置软删除字段的默认值
protected $defaultSoftDelete = 0;
}点击 "运行实例" 按钮查看在线实例
public function softDelete()
{
StaffModel::destroy(10);
//软删除的数据在普通查询中不可见
$res = StaffModel::where('staff_id < 5')->select();
//如果想在查询的时候看到已经被删除的记录
$res = StaffModel::withTrashed()->where('staff_id < 5')->select();
//查看回收站:
$res = StaffModel::onlyTrashed()->select();
dump($res);
}点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号