闭包实现查询
实例
<?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); }
运行实例 »
点击 "运行实例" 按钮查看在线实例