您的位置:首页 > 教程 > PHP编程 > Laravel Eloquent ORM 多条件查询的例子

Laravel Eloquent ORM 多条件查询的例子

2020-09-10 07:13:22 来源:易采站长站 作者:

Laravel Eloquent ORM 多条件查询的例子,组合,字段,几个,都是,很久

Laravel Eloquent ORM 多条件查询的例子

易采站长站,站长之家为您整理了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 多条件查询的例子的详细介绍。欢迎大家对Laravel Eloquent ORM 多条件查询的例子内容提出宝贵意见

微信扫一扫

易采站长站微信账号