第一种方法:
$keys = $request->all();$handle = DB::table('表名');foreach ($keys as $key => $val) {$keys[$key] && $handle->where($key, 'like', '%' . $val . '%');}$datas = $handle->get()->toarray();$data = json_encode($datas);return response(['mag' => $data, 'code' => 1000, 'message' => '数据返回成功!'], 200); } |
第二种方法
在对列表进行查询的时候经常需要定义多个搜索条件对数据进行搜索,下面是一种使用laravel查询构造器查询的方法,其中姓名和地址为模糊查询手机号和性别为精确查询
//search_arr为查询条件的数据,示例数据如下
$search_arr=[
['type'=>'姓名','value'=>'王'],
['type'=>'地址','value'=>'王家村'],
['type'=>'性别','value'=>'男']
]
//$query为查询构建器实例;
function getUserList($search_arr){
return $query->where(function ($query) use($search_arr){
foreach($search_arr as $search){
switch ($search['type']) {
case '姓名':
$query -> where('user_name', 'like', '%'.$search['value'].'%');
break;
case '地址':
$query -> where('user_address', 'like', '%'.$search['value'].'%');
break;
case '手机号':
$query -> where(['user_tel'=>$search['value']]);
break;
case '性别':
$query -> where(['user_sex'=>$search['value']]);
break;
}
}
})->get();
}