侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Laravel Eloquent ORM 多条件查询的例子

2022-06-18 星期六 / 0 评论 / 0 点赞 / 61 阅读 / 2804 字

一、需求:在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索。那么在model里就需要判断有那个字段组合,怎么组合。网

一、需求:

在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索。那么在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 多条件查询的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持..。

广告 广告

评论区