Laravel Eloquent ORM 多条件查询的例子

 更新时间:2019年10月10日 09:28:28   作者:菜鸟没翅膀  
今天小编就为大家分享一篇Laravel Eloquent ORM 多条件查询的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、需求:

在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索。那么在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创建多级目录完整封装类操作方法

    下面小编就为大家带来一篇php创建多级目录完整封装类操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Yii框架弹出窗口组件CJuiDialog用法分析

    Yii框架弹出窗口组件CJuiDialog用法分析

    这篇文章主要介绍了Yii框架弹出窗口组件CJuiDialog用法,结合实例形式较为详细的分析了Yii框架组件CJuiDialog的功能、使用方法与具体参数功能,需要的朋友可以参考下
    2017-01-01
  • Yii2框架数据验证操作实例详解

    Yii2框架数据验证操作实例详解

    这篇文章主要介绍了Yii2框架数据验证操作,结合实例形式详细分析了Yii框架常见数据验证操作的原理、实现方法及相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • ThinkPHP实现图片上传操作的方法详解

    ThinkPHP实现图片上传操作的方法详解

    这篇文章主要介绍了ThinkPHP实现图片上传操作的方法,详细分析了thinkPHP图片上传操作的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • PHP中的表达式简述

    PHP中的表达式简述

    表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。这篇文章主要介绍了PHP中的表达式简述的相关资料,需要的朋友可以参考下
    2016-05-05
  • Zend Framework动作助手Redirector用法实例详解

    Zend Framework动作助手Redirector用法实例详解

    这篇文章主要介绍了Zend Framework动作助手Redirector用法,结合实例形式详细分析了转向器Redirector的功能,使用方法与相关注意事项,需要的朋友可以参考下
    2016-03-03
  • PHP培训要多少钱

    PHP培训要多少钱

    好多同学会加入到互联网行业,最好的入门可能就是学习PHP、web前端等。那今天我就回答一下大家php培训多少钱
    2017-06-06
  • Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析

    Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析

    这篇文章主要介绍了Laravel 框架基于自带的用户系统实现登录注册及错误处理功能,结合实例形式分析了laravel框架自带用户系统的基本使用方法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • windows7下安装php的php-ssh2扩展教程

    windows7下安装php的php-ssh2扩展教程

    这篇文章主要介绍了windows7下安装php的php-ssh2扩展教程,本文同时适用XP系统,但Win8没有测试过,需要的朋友可以参考下
    2014-07-07
  • PHP实现使用优酷土豆视频地址获取swf播放器分享地址

    PHP实现使用优酷土豆视频地址获取swf播放器分享地址

    这篇文章主要介绍了PHP实现使用优酷土豆视频地址获取swf播放器分享地址,即分析优酷土豆的视频页面地址,从而获得对应的swf播放器分享地址,需要的朋友可以参考下
    2014-06-06

最新评论