|
...
|
...
|
@@ -125,46 +125,41 @@ class Base extends Model |
|
|
|
$query->where($k,$v);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
foreach ($v as $k1 => $v1){
|
|
|
|
if(!is_array($v1)){
|
|
|
|
$query->where($k1,$v1);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
switch ($v1[0]){
|
|
|
|
case 'like':
|
|
|
|
// like查询 ['name|title'=> ['like','%a%']]
|
|
|
|
if (strpos($k1, '|') !== false) {
|
|
|
|
$query->where(function ($query) use ($k1,$v1) {
|
|
|
|
$item = explode('|', $k1);
|
|
|
|
foreach ($item as $vo) {
|
|
|
|
$query->orWhere($vo, $v1[0], $v1[1]);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
$query->where($k1,$v1[0], $v1[1]);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 'in':
|
|
|
|
// in查询 ['id'=>['in'=>[1,2,3]]]
|
|
|
|
$query->whereIn($k1, $v1[1]);
|
|
|
|
break;
|
|
|
|
case 'no in':
|
|
|
|
// in查询 ['id'=>['not in'=>[1,2,3]]]
|
|
|
|
$query->whereNotIn($k1, $v1[1]);
|
|
|
|
break;
|
|
|
|
case 'between':
|
|
|
|
// in查询 ['id'=>['between'=>[create1,create2]]]
|
|
|
|
$query->whereBetween($k1, $v1[1]);
|
|
|
|
case 'not between':
|
|
|
|
// not between查询 ['created_at'=>['not between'=>['xxx', 'xxx]]]
|
|
|
|
$query->whereNotBetween($k1, $v1[1]);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
$query->where($k1,$v1[0],$v1[1]);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
switch ($v[0]){
|
|
|
|
case 'like':
|
|
|
|
// like查询 ['name|title'=> ['like','%a%']]
|
|
|
|
if (strpos($k, '|') !== false) {
|
|
|
|
$query->where(function ($query) use ($k,$v) {
|
|
|
|
$item = explode('|', $k);
|
|
|
|
foreach ($item as $vo) {
|
|
|
|
$query->orWhere($vo, $v[0], $v[1]);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
$query->where($k, $v[0], $v[1]);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 'in':
|
|
|
|
// in查询 ['id'=>['in',[1,2,3]]]
|
|
|
|
$query->whereIn($k, $v[1]);
|
|
|
|
break;
|
|
|
|
case 'no in':
|
|
|
|
// in查询 ['id'=>['not in',[1,2,3]]]
|
|
|
|
$query->whereNotIn($k, $v[1]);
|
|
|
|
break;
|
|
|
|
case 'between':
|
|
|
|
// in查询 ['id'=>['between',[create1,create2]]]
|
|
|
|
$query->whereBetween($k, $v[1]);
|
|
|
|
case 'not between':
|
|
|
|
// not between查询 ['created_at'=>['not between',['xxx', 'xxx]]]
|
|
|
|
$query->whereNotBetween($k, $v[1]);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
$query->where($k,$v[0],$v[1]);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
return $query;
|
|
|
|
}
|
...
|
...
|
|