• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 多条件查询的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Laravel5.7 Eloquent ORM快速入门详解
    • Laravel 5框架学习之Eloquent (laravel 的ORM)
    • Laravel Eloquent ORM 实现查询表中指定的字段
    • laravel 解决Eloquent ORM的save方法无法插入数据的问题
    • Laravel框架Eloquent ORM新增数据、自定义时间戳及批量赋值用法详解
    • laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
    • Laravel框架Eloquent ORM删除数据操作示例
    • laravel 数据迁移与 Eloquent ORM的实现方法
    • Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
    • Laravel框架Eloquent ORM修改数据操作示例
    • laravel5.6 框架操作数据 Eloquent ORM用法示例
    上一篇:laravel withCount 统计关联数量的方法
    下一篇:thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Laravel Eloquent ORM 多条件查询的例子 Laravel,Eloquent,ORM,多,条件,