91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Laravel5中如何實現模糊匹配加多條件查詢功能

發布時間:2021-06-03 14:12:03 來源:億速云 閱讀:273 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關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為前端傳過來的數組 利用封裝拼接進行模糊或者精確的多條件搜素

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

方法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=[])
{
  $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中如何實現模糊匹配加多條件查詢功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山阳县| 平陆县| 楚雄市| 中江县| 新邵县| 泰顺县| 兴安盟| 航空| 沿河| 大埔县| 新巴尔虎右旗| 谢通门县| 昂仁县| 金华市| 东莞市| 大新县| 台中市| 隆昌县| 深水埗区| 沁阳市| 临夏县| 周至县| 淮安市| 郁南县| 荔浦县| 壤塘县| 临桂县| 宿迁市| 二连浩特市| 剑河县| 三门峡市| 景德镇市| 濉溪县| 南和县| 达州市| 克什克腾旗| 乌拉特后旗| 横山县| 应城市| 石嘴山市| 虞城县|