官网教程:高级查询 · ThinkPHP6.0完全开发手册 · 看云
条件查询
查询构造器支持条件查询,例如:
$condition=条件
Db::name('user')->when($condition, function ($query) {
// 满足条件后执行
$query->where('score', '>', 80)->limit(10);
})->select();
并且支持不满足条件的分支查询
Db::name('user')->when($condition, function ($query) {
// 满足条件后执行
$query->where('score', '>', 80)->limit(10);
}, function ($query) {
// 不满足条件执行
$query->where('score', '>', 60);
});
例子:
Db::name('user')->when($sex==1 && $type=1 && !empyt($score) , function ($query) {
// 满足条件后执行
$query->where('score', '>', 80)->limit(10);
})
->field('id,type,score,sex')
->select();
例子:带外面参数进来判断条件use($params){
$rsu = Db::name('order')
->alias('o')
->leftjoin('user u', 'u.id=o.user_id')
->when(!empty($params['state']),function($query)use($params){
if($params['state'] == '3'){//3=等清分
$query->whereExp('ohe.state',Db::raw('IS NULL'));
}else if($params['state']== '10'){
$query->where('ohe.state',0);
}else{
$query->where('ohe.state',$params['state']);
}
})
->select();