Laravel5实现模糊匹配加多条件查询功能实现步骤详解
这次给大家带来Laravel5实现模糊匹配加多条件查询功能实现步骤详解,Laravel5实现模糊匹配加多条件查询功能实现的注意事项有哪些,下面就是实战案例,一起来看一下。
方法1. ORM模式
public function ReportAccurate($data) { if(is_array($data)) { $where = $this->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', 'like', '%' . $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', 'like', '%' . $data['research_id'] . '%'); $data['center_number'] && $query->where('center_number', 'like', '%' . $data['center_number'] . '%'); })->get(); return $results; }
上面的$data为前端传过来的数组 利用封装拼接进行模糊或者精确的多条件搜素
不好的地方 代码不健壮 不利于维护
方法2. 大神封装法 利用到的知识是Repository 仓库
$fields = ['id', 'report_id', 'report_identify', 'report_first_received_date', 'drug_name', 'first_event_term', 'case_serious', 'standard_of_seriousness', 'case_causality', 'received_from_id', 'task_user_name', 'organize_role_name', 'task_countdown', 'report_countdown']; /*查询的字段*/ $searchFields = [ 'report_identify' => '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; }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上是Laravel5实现模糊匹配加多条件查询功能实现步骤详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Go语言正则表达式实践指南:如何匹配十六进制颜色代码引言:正则表达式是一种强大且灵活的工具,用于字符串的模式匹配和查找。在Go语言中,我们可以使用内置的正则表达式包regexp来实现这些操作。本文将介绍如何使用正则表达式在Go语言中匹配十六进制颜色代码。导入正则表达式包首先,我们需要导入Go语言的正则表达式包regexp。可以在代码的开头添加如下导入语句:i

PHP正则表达式实战:匹配字母和数字正则表达式是一种用于匹配字符串的工具,可以方便地实现字符串的搜索、替换、分割等操作。在PHP开发中,正则表达式也是一个非常有用的工具。本文将介绍如何使用PHP正则表达式来匹配字母和数字。匹配单个字符要匹配单个字符,可以使用正则表达式中的字符类。字符类用方括号[]表示,其中的字符表示可以被匹配的字符,可以使用连字符-表示范围

PHP正则表达式:精确匹配与排除模糊包含正则表达式是一种强大的文本匹配工具,能够帮助程序员在处理文本时进行高效的搜索、替换和筛选。在PHP中,正则表达式也被广泛应用于字符串处理和数据匹配中。本文将重点介绍在PHP中如何进行精确匹配和排除模糊包含的操作,同时结合具体的代码示例进行说明。精确匹配精确匹配意味着只匹配符合完全条件的字符串,不匹配任何变种或包含额外字

PHP字符串匹配技巧:避免模糊包含表达式在PHP开发中,字符串匹配是一个常见的任务,通常用于查找特定的文本内容或验证输入的格式。然而,有时候我们需要避免使用模糊的包含表达式来确保匹配的准确性。本文将介绍一些在PHP中进行字符串匹配时避免模糊包含表达式的技巧,并提供具体的代码示例。使用preg_match()函数进行精确匹配在PHP中,可以使用preg_mat

绝地潜兵2是一款拥有高质量大作玩法打造的第三人称的射击游戏,拥有大量精彩的玩法可让小伙伴去探索联机射击战斗的操作趣味,游戏中的联机模式是可以匹配的,一些玩家还不清楚该如何去操作匹配,本期为大家分享匹配的步骤!绝地潜兵2匹配操作教程答:在星球界面点击快速匹配。绝地潜兵2匹配方法绝地潜兵2的快速匹配是一个很不错的功能,能帮玩家找到一起匹配的队友,共同进入一场任务,相互配合获取更高的任务评价。匹配的选项在星球界面,在找任务或者看公开房间的时候,下方会有一个快速匹配,点击就能开始匹配。如果玩家打开了跨平

HTML是一种常用的页面标记语言,用于在网页中展示内容。在HTML中,textarea标签被用于创建文本框,允许用户输入或编辑文本。当你需要从页面中提取所有的textarea标签及其内容时,PHP正则表达式可以提供一个简单有效的解决方案。在本文中,我们将学习如何使用PHP正则表达式匹配HTML中的所有textarea标签。理解正则表

Java作为一门强类型语言,在编译时就要求变量的类型必须明确确定下来,这在一定程度上保证了程序的安全性。但是有时候,在运行时,我们可能会遇到类型转换异常——java.lang.ClassCastException,这种异常会在Java程序中出现,当程序试图将一个对象转换为一个不兼容的类型时,就会抛出该异常。Java.lang.ClassCastExcepti

正则表达式是一种强大的文本处理工具,它在PHP中有着广泛的应用。其中一个常见的用法是匹配多个连续的特定字符,比如匹配多个连续的空格、多个连续的逗号等。本文将介绍如何在PHP中使用正则表达式来实现这一功能。在PHP中,我们可以使用preg_match()函数来进行正则表达式的匹配。该函数需要传入两个参数:正则表达式和待匹配的字符串。如果匹配成功
