Laravel5中实现模糊匹配加多条件查询功能的方法
发布时间:2020-12-14 20:04:49 所属栏目:大数据 来源:网络整理
导读:本篇章节讲解Laravel5中实现模糊匹配加多条件查询功能的方法。供大家参考研究具体如下: 方法1. ORM模式 whereAll($data); return $where; } else { return false; }}/*多条件模糊*/public function whereAll($data){ $query = new ReportMainpage
本篇章节讲解Laravel5中实现模糊匹配加多条件查询功能的方法。分享给大家供大家参考,具体如下: 方法1. ORM模式 whereAll($data);
return $where;
}
else
{
return false;
}
}
/*多条件模糊*/
public function whereAll($data)
{
$query = new ReportMainpage();
$results = $query->where(function ($query) use ($data) {
$data['report_first_received_date'] && $query->where('report_first_received_date','like','%' . $data['report_first_received_date'] . '%');
$data['report_drug_safety_date'] && $query->where('report_drug_safety_date','%' . $data['report_drug_safety_date'] . '%');
$data['aecountry_id'] && $query->where('aecountry_id',$data['aecountry_id']);
$data['received_fromid_id'] && $query->where('received_fromid_id',$data['received_fromid_id']);
$data['research_id'] && $query->where('research_id','%' . $data['research_id'] . '%');
$data['center_number'] && $query->where('center_number','%' . $data['center_number'] . '%');
})->get();
return $results;
}
上面的$data为前端传过来的数组 利用封装拼接进行模糊或者精确的多条件搜素 不好的地方 代码不健壮 不利于维护 方法2. 大神封装法 利用到的知识是Repository 仓库 'like','drug_name' => 'like','event_term' => 'like','organize_role_id' => '=','case_causality' => '=','report_type' => '=','task_user_id' => '=','status' => '=',];
/*获取查询条件*/
$where = $this->searchArray($searchFields);
/*获取数据*/
$this->reportTaskRepo->pushCriteria(new OrderBySortCriteria('asc','task_countdown'));
$data = $this->reportTaskRepo->findWhere($where,$fields);
//在Trait里封装
/**
* 获取请求中的参数的值
* @param array $fields [description]
* @return [type] [description]
*/
public function searchArray($fields=[])
{
$results = [];
if (is_array($fields)) {
foreach($fields as $field => $operator) {
if(request()->has($field) && $value = $this->checkParam($field,'',false)) {
$results[$field] = [$field,$operator,"%{$value}%"];
}
}
}
return $results;
}
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |