您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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多條件查詢的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。