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 autoload机制的详解
Jun 09 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
php字符串函数学习之strstr()
Mar 27 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
php生成带logo二维码方法小结
Apr 08 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
Jun 13 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 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
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
php远程下载类分享
2016/04/13 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
Js+XML 操作
2006/09/20 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python功能键的读取方法
2015/05/28 Python
python实现识别相似图片小结
2016/02/22 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python 实现任务管理清单案例
2020/04/25 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
会计工作心得体会
2014/01/13 职场文书
实用的简历自我评价
2014/03/06 职场文书
环保建议书
2014/03/12 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
SQLServer中exists和except用法介绍
2021/12/04 SQL Server
canvas 中如何实现物体的框选
2022/08/05 Javascript