加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读