Laravel Eloquent ORM多条件查询

xiaoxiao2021-02-28  111

 一、需求:

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

       网上找了很久,Laravel群里也问了几个,都说没有写过,于是自己写个吧。话不多说,见代码: [php]  view plain  copy 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,例如:        [php]  view plain  copy 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;     }      转载自:http://blog.csdn.net/a437629292/article/details/44038411
转载请注明原文地址: https://www.6miu.com/read-56569.html

最新回复(0)