Laravel Eloquent ORM 多条件查询的例子


Posted in PHP onOctober 10, 2019

一、需求:

在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索。那么在model里就需要判断有那个字段组合,怎么组合。

网上找了很久,Laravel群里也问了几个,都说没有写过,于是自己写个吧。话不多说,见代码:

function findByParam($param = array()) 
 { 
  $select = new Customer(); 
  if (isset($param['name']) && '' != $param['name']) 
  { 
   $select = $select->where('customer.name', '=', $param['name']); 
  } 
  if (isset($param['phone']) && '' != $param['phone']) 
  { 
   $select = $select->where('customer.phone', '=', $param['phone']); 
  } 
  if (isset($param['email']) && '' != $param['email']) 
  { 
   $select = $select->where('customer.email', '=', $param['email']); 
  } 
  if (isset($param['tel']) && '' != $param['tel']) 
  { 
   $select = $select->where('customer.tel', '=', $param['tel']); 
  } 
  if (isset($param['qq']) && '' != $param['qq']) 
  { 
   $select = $select->where('customer.qq', '=', $param['qq']); 
  } 
  if (isset($param['IDCard']) && '' != $param['IDCard']) 
  { 
   $select = $select->where('customer.IDCard', '=', $param['IDCard']); 
  } 
   
  $customers = $select->leftJoin("member", function ($join) 
  { 
   $join->on("customer.memberID", "=", "member.id"); 
  }) 
   ->get(array( 
   'customer.id', 
   'customer.name', 
   'customer.sex', 
   'customer.tel', 
   'customer.phone', 
   'customer.address', 
   'customer.email', 
   'customer.qq', 
   'customer.headPic', 
   'customer.birthday', 
   'customer.IDCard', 
   'customer.enable', 
   'customer.memberID', 
   'customer.IDCard', 
   'customer.info', 
   'member.name as mname', 
   'member.discount' 
  )); 
  return json_encode($customers);

调用的时候,controller里只需要接收这些字段,无论它是否有值,直接加入到$param数组中查询就OK,例如:

function anyFindbyparam() 
 { 
  $name = Input::get('name'); 
  $tel = Input::get('tel'); 
  $phone = Input::get('phone'); 
  $email = Input::get('email'); 
  $qq = Input::get('qq'); 
  $IDCard = Input::get('IDCard'); 
  $customer = new Customer(); 
  $customers = $customer->findByParam(array( 
   'name' => $name, 
   'tel' => $tel, 
   'phone' => $phone, 
   'email' => $email, 
   'qq' => $qq, 
   'IDCard' => $IDCard 
  )); 
  return $customers; 
 }

以上这篇Laravel Eloquent ORM 多条件查询的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
从网上搜到的phpwind 0day的代码
Dec 07 PHP
PHP中文汉字验证码
Apr 08 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
php cookie使用方法学习笔记分享
Nov 07 PHP
php使用GeoIP库实例
Jun 27 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
Laravel 错误提示本地化的实现
Oct 22 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 PHP
laravel withCount 统计关联数量的方法
Oct 10 #PHP
浅谈laravel中的关联查询with的问题
Oct 10 #PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 #PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 #PHP
asp.net和php的区别点总结
Oct 10 #PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 #PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 #PHP
You might like
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
php三元运算符知识汇总
2015/07/02 PHP
php正则修正符用法实例详解
2016/12/29 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
详解javascript函数的参数
2015/11/10 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
python超简单解决约瑟夫环问题
2015/05/12 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
中国最大的团购网站:聚划算
2016/09/21 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
听课评语大全
2014/04/30 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
专业见习报告范文
2014/11/03 职场文书
铁路安全反思材料
2014/12/24 职场文书
同学聚会感言一句话
2015/07/30 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers