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中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
一些常用的php函数
Dec 06 PHP
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP实现微信申请退款功能
Oct 01 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
PHP 99乘法表的几种实现代码
Oct 13 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 header()函数使用说明
2008/07/10 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
python使用mysql数据库示例代码
2017/05/21 Python
Django如何自定义分页
2018/09/25 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
超市促销活动总结
2014/07/01 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
银行员工考核评语
2014/12/31 职场文书
考试作弊检讨书
2015/01/27 职场文书
新生开学寄语大全
2015/05/28 职场文书
学生会干部任命书
2015/09/21 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
SQL SERVER存储过程用法详解
2022/02/24 SQL Server
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis