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实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php调用google接口生成二维码示例
Apr 28 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHP静态成员变量
Feb 14 PHP
php输出图像的方法实例分析
Feb 16 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
PHP使用递归按层级查找数据的方法
Nov 10 PHP
PHP读取文件或采集时解决中文乱码
Mar 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
yii框架源码分析之创建controller代码
2011/06/28 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
JSONP跨域请求
2017/03/02 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
JS实现移动端双指缩放和旋转方法
2019/12/13 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
用pandas按列合并两个文件的实例
2018/04/12 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
暑期社会实践感言
2014/02/25 职场文书
职业生涯规划书范文
2014/03/10 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
《秋思》教学反思
2016/02/23 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis