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发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
php多文件上传实现代码
Feb 20 PHP
php中require和require_once的区别说明
Feb 27 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
CI框架简单分页类用法示例
Jun 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
php下将XML转换为数组
2010/01/01 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
比较完整的微信开发php代码
2016/08/02 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
webpack优化的深入理解
2018/12/10 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
python实现控制COM口的示例
2019/07/03 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
python如何代码集体右移
2020/07/20 Python
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
建筑经济管理专业求职信分享
2014/01/06 职场文书
优秀会计求职信
2014/07/04 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
离婚起诉书范本
2015/05/18 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang
关于Redis的主从复制及哨兵问题
2022/06/16 Redis