Laravel5實作模糊比對加多條件查詢功能實現步驟詳解
這次為大家帶來Laravel5實現模糊匹配加多條件查詢功能實現步驟詳解,Laravel5實現模糊匹配加多條件查詢功能實現的注意事項有哪些,下面就是實戰案例,一起來看一下。
方法1. ORM模式
public function ReportAccurate($data) { if(is_array($data)) { $where = $this->whereAll($data); return $where; } else { return false; } } /*多条件模糊*/ public function whereAll($data) { $query = new ReportMainpage(); $results = $query->where(function ($query) use ($data) { $data['report_first_received_date'] && $query->where('report_first_received_date', 'like', '%' . $data['report_first_received_date'] . '%'); $data['report_drug_safety_date'] && $query->where('report_drug_safety_date', 'like', '%' . $data['report_drug_safety_date'] . '%'); $data['aecountry_id'] && $query->where('aecountry_id', $data['aecountry_id']); $data['received_fromid_id'] && $query->where('received_fromid_id', $data['received_fromid_id']); $data['research_id'] && $query->where('research_id', 'like', '%' . $data['research_id'] . '%'); $data['center_number'] && $query->where('center_number', 'like', '%' . $data['center_number'] . '%'); })->get(); return $results; }
上面的$data為前端傳過來的陣列利用封裝拼接進行模糊或精確的多條件搜素
不好的地方程式碼不健壯不利於維護
##不好的知識是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=[]) { $results = []; if (is_array($fields)) { foreach($fields as $field => $operator) { if(request()->has($field) && $value = $this->checkParam($field, '', false)) { $results[$field] = [$field, $operator, "%{$value}%"]; } } } return $results; }
以上是Laravel5實作模糊比對加多條件查詢功能實現步驟詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Go語言正規表示式實踐指南:如何匹配十六進位顏色代碼引言:正規表示式是一種強大且靈活的工具,用於字串的模式匹配和查找。在Go語言中,我們可以使用內建的正規表示式套件regexp來實作這些操作。本文將介紹如何使用正規表示式在Go語言中匹配十六進位顏色代碼。導入正規表示式套件首先,我們需要導入Go語言的正規表示式套件regexp。可以在程式碼的開頭加入以下導入語句:i

PHP正規表示式實戰:匹配字母和數字正規表示式是一種用來匹配字串的工具,可以方便地實現字串的搜尋、替換、分割等操作。在PHP開發中,正規表示式也是非常有用的工具。本文將介紹如何使用PHP正規表示式來搭配字母和數字。匹配單一字符要匹配單個字符,可以使用正則表達式中的字符類。字符類別用方括號[]表示,其中的字符表示可以被匹配的字符,可以使用連字符-表示範圍

PHP正規表示式:精確匹配與排除模糊包含正規表示式是一種強大的文字匹配工具,能夠幫助程式設計師在處理文字時進行高效的搜尋、替換和篩選。在PHP中,正規表示式也被廣泛應用於字串處理和資料匹配。本文將重點介紹在PHP中如何進行精確配對和排除模糊包含的操作,同時結合具體的程式碼範例進行說明。精確匹配精確匹配意味著只匹配符合完全條件的字串,不匹配任何變種或包含額外字

PHP字串比對技巧:避免模糊包含表達式在PHP開發中,字串比對是常見的任務,通常用於尋找特定的文字內容或驗證輸入的格式。然而,有時候我們需要避免使用模糊的包含表達式來確保匹配的準確性。本文將介紹一些在PHP中進行字串匹配時避免模糊包含表達式的技巧,並提供具體的程式碼範例。使用preg_match()函數進行精確比對在PHP中,可以使用preg_mat

絕地潛兵2是一款擁有高品質大作玩法打造的第三人稱的射擊遊戲,擁有大量精彩的玩法可讓小夥伴去探索聯機射擊戰鬥的操作趣味,遊戲中的聯機模式是可以匹配的,一些玩家目前還不清楚該如何去操作匹配,本期為大家分享匹配的步驟!絕地潛兵2匹配操作教程答:在星球界面點擊快速匹配。絕地潛兵2配對方法絕地潛兵2的快速配對是一個很不錯的功能,能幫玩家找到一起配對的隊友,共同進入一場任務,互相配合獲得更高的任務評價。匹配的選項在星球介面,在找任務或看公開房間的時候,下方會有一個快速匹配,點擊就能開始匹配。如果玩家打開了跨平

HTML是一種常用的頁面標記語言,用於在網頁中展示內容。在HTML中,textarea標籤被用來建立文字框,允許使用者輸入或編輯文字。當你需要從頁面中提取所有的textarea標籤及其內容時,PHP正規表示式可以提供一個簡單有效的解決方案。在本文中,我們將學習如何使用PHP正規表示式來匹配HTML中的所有textarea標籤。理解正規表

Java作為一門強型別語言,在編譯時就要求變數的型別必須明確確定下來,這在某種程度上保證了程式的安全性。但是有時候,在運行時,我們可能會遇到類型轉換異常——java.lang.ClassCastException,這種異常會在Java程式中出現,當程式試圖將一個物件轉換為不相容的類型時,就會拋出該異常。 Java.lang.ClassCastExcepti

正規表示式是一種強大的文字處理工具,它在PHP中有著廣泛的應用。其中一個常見的用法是匹配多個連續的特定字符,例如匹配多個連續的空格、多個連續的逗號等。本文將介紹如何在PHP中使用正規表示式來實現此功能。在PHP中,我們可以使用preg_match()函數來進行正規表示式的匹配。此函數需要傳入兩個參數:正規表示式和待匹配的字串。如果匹配成功
