欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel5中實現(xiàn)模糊匹配加多條件查詢功能的方法

 更新時間:2018年03月25日 14:18:49   作者:勛彰  
這篇文章主要介紹了Laravel5中實現(xiàn)模糊匹配加多條件查詢功能的方法,結(jié)合實例形式分析了Laravel5多條件模糊查詢及相關(guān)封裝操作技巧,需要的朋友可以參考下

本文實例講述了Laravel5中實現(xiàn)模糊匹配加多條件查詢功能的方法。分享給大家供大家參考,具體如下:

方法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為前端傳過來的數(shù)組 利用封裝拼接進行模糊或者精確的多條件搜素

不好的地方 代碼不健壯 不利于維護

方法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);
/*獲取數(shù)據(jù)*/
$this->reportTaskRepo->pushCriteria(new OrderBySortCriteria('asc', 'task_countdown'));
$data = $this->reportTaskRepo->findWhere($where, $fields);
//在Trait里封裝
/**
 * 獲取請求中的參數(shù)的值
 * @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;
}

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家基于Laravel框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • CI框架Session.php源碼分析

    CI框架Session.php源碼分析

    Session類并不使用PHP本身的session,而是使用類自己的session,這樣做,可以給開發(fā)者提供更大的彈性。下面我們就來仔細分析下CI框架的Session類Session.php文件
    2014-11-11
  • Yii2 中實現(xiàn)單點登錄的方法

    Yii2 中實現(xiàn)單點登錄的方法

    這篇文章主要介紹了Yii2 中實現(xiàn)單點登錄的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • laravel 模型查詢按照whereIn排序的示例

    laravel 模型查詢按照whereIn排序的示例

    今天小編就為大家分享一篇laravel 模型查詢按照whereIn排序的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 微信自定義菜單的處理開發(fā)示例

    微信自定義菜單的處理開發(fā)示例

    在微信5.0以前,自定義菜單是作為一種內(nèi)測資格使用的,只有少數(shù)公眾帳號擁有菜單,因此出現(xiàn)很多企業(yè)為了弄到菜單不惜重金求購?,F(xiàn)如今,一大批帳號從訂閱號轉(zhuǎn)為服務(wù)號,很多都是奔著自定義菜單去的。今天我們就來簡單研究下微信自定義菜單的處理。
    2015-04-04
  • PHP抽獎算法程序代碼分享

    PHP抽獎算法程序代碼分享

    這篇文章主要分享了PHP抽獎算法程序設(shè)計,抽獎在日常生活中大家都會接觸到,用php如何實現(xiàn)抽獎算法,需要了解的朋友可以參考一下
    2015-10-10
  • 使用PHP+MySql+Ajax+jQuery實現(xiàn)省市區(qū)三級聯(lián)動功能示例

    使用PHP+MySql+Ajax+jQuery實現(xiàn)省市區(qū)三級聯(lián)動功能示例

    下面小編就為大家?guī)硪黄褂肞HP+MySql+Ajax+jQuery實現(xiàn)省市區(qū)三級聯(lián)動功能示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • php中的PHP_EOL換行符詳細解析

    php中的PHP_EOL換行符詳細解析

    看手冊時發(fā)現(xiàn)PHP_EOL這個變量,查了下資料,原來是相當(dāng)于換行符。在PHP中可以用PHP_EOL來替代,以提高代碼的源代碼級可移植性
    2013-10-10
  • layui框架實現(xiàn)文件上傳及TP3.2.3(thinkPHP)對上傳文件進行后臺處理操作示例

    layui框架實現(xiàn)文件上傳及TP3.2.3(thinkPHP)對上傳文件進行后臺處理操作示例

    這篇文章主要介紹了layui框架實現(xiàn)文件上傳及TP3.2.3對上傳文件進行后臺處理操作,結(jié)合實例形式分析了layui框架結(jié)合thinkPHP進行文件上傳與處理操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • 文件上傳之SWFUpload插件(代碼)

    文件上傳之SWFUpload插件(代碼)

    這篇文章主要介紹了文件上傳之SWFUpload插件(代碼),實現(xiàn)此代碼主要分為兩部分:1.前臺文件index.html和 2.后臺文件upload.php,需要的朋友可以參考下
    2015-07-07
  • php版微信公眾平臺之微信網(wǎng)頁登陸授權(quán)示例

    php版微信公眾平臺之微信網(wǎng)頁登陸授權(quán)示例

    這篇文章主要介紹了php版微信公眾平臺之微信網(wǎng)頁登陸授權(quán)的方法,結(jié)合實例形式分析了微信網(wǎng)頁登陸授權(quán)的接口調(diào)用及參數(shù)含義,需要的朋友可以參考下
    2016-09-09

最新評論