laravel5中模糊匹配加多條件

2021-08-15 04:50:50 字數 1902 閱讀 7513

方法1:orm模式

public function 

reportaccurate

($data)

else}/*

多條件模糊

*/public function

whereall

($data)

)->get();

return

$results

;}

//上面的$data為前端傳過來的陣列 利用封裝拼接進行模糊或者精確的多條件搜素
//不好的地方 **不健壯 不利於維護
2:方法2 大神封裝法 利用到的知識是repository 倉庫

$fields 

= ['id'

, 'report_id'

, 'report_identify'

, 'report_first_received_date'

, 'drug_name'

, 'first_event_term'

, 'case_serious'

, 'standard_of_seriousness'

, 'case_causality'

, 'received_from_id'

, 'task_user_name'

, 'organize_role_name'

, 'task_countdown'

, 'report_countdown'

];/*

查詢的字段

*/$searchfields

= ['report_identify'

=>

'like'

,'drug_name'

=>

'like'

,'event_term'

=>

'like'

,'organize_role_id'

=>

'=',

'case_causality'

=>

'=',

'report_type'

=>

'=',

'task_user_id'

=>

'=',

'status'

=>

'=',

];/*

獲取查詢條件

*/$where

= $this

->searcharray(

$searchfields

);/*

獲取資料

*/$this

->

reporttaskrepo

->pushcriteria(

new

orderbysortcriteria

('asc'

, 'task_countdown'

));$data

= $this

->

reporttaskrepo

->findwhere(

$where

, $fields

);

//在trait裡封裝

/**

* 獲取請求中的引數的值

* @param

array $fields [description]

* @return

[type] [description]

*/public function

searcharray

($fields=)

%"];}}

}return

$results

;}

Laravel5 容器自動載入依賴的原理

首先看容器的核心類 illuminate container container的make方法,裡面呼叫了bulid方法,這個bulid是解決依賴的核心 第一步 建立php的反射類reflectionclass的物件,可以解析乙個類的資訊 reflector new reflectionclass ...

Hive join中的模糊匹配(locate)

hive不支援非等值連線,但可以通過locate 函式進行功能轉換。locate string substr,string str int pos 查詢字串str中的pos位置後字串substr第一次出現的位置,若為找到,則返回0。hive select locate a abcd locate b...

thinkphp中的多字段模糊匹配

user m user 例項化user物件 map name title thinkphp 把查詢條件傳入查詢方法 user where map select 用到專案中 if address 這裡就很簡單的解決了這個需求,而且很精準。生成的sql語句如下 select a.b.name,b.tel...