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 相关文章推荐
PHP生成便于打印的网页
Oct 09 PHP
PHP新手上路(六)
Oct 09 PHP
php REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
使用php实现截取指定长度
Aug 06 PHP
php遍历CSV类实例
Apr 14 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
PHP运行模式汇总
Nov 06 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
PHP回调函数简单用法示例
May 08 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php简单静态页生成过程
2008/03/27 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python深入06——python的内存管理详解
2016/12/07 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python输出各行命令详解
2018/02/01 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
详解python和matlab的优势与区别
2019/06/28 Python
python3获取url文件大小示例代码
2019/09/18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
python如何查看网页代码
2020/06/07 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
求职简历的自我评价
2014/01/31 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
2015年教学工作总结
2015/04/02 职场文书
python 使用pandas读取csv文件的方法
2022/12/24 Python