您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章给大家分享的是有关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多条件查询的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。