ホームページ バックエンド開発 PHPチュートリアル Laravel5であいまい一致・複数条件クエリ機能を実装する手順を詳しく解説

Laravel5であいまい一致・複数条件クエリ機能を実装する手順を詳しく解説

May 17, 2018 pm 02:29 PM
マッチ

今回は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. マスターのカプセル化方法で使用される知識は、リポジトリ ウェアハウスです

$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;
}
ログイン後にコピー

この記事の事例を読んだ後は、この方法を習得したと思います。情報については、PHP 中国語 Web サイトの他の関連記事にも注目してください。

推奨読書:

ThinkPHP5 フレームワークによるページング クエリの実装の詳細

以上がLaravel5であいまい一致・複数条件クエリ機能を実装する手順を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go の正規表現の実践ガイド: 16 進数のカラー コードを一致させる方法 Go の正規表現の実践ガイド: 16 進数のカラー コードを一致させる方法 Jul 13, 2023 am 10:46 AM

Go 言語の正規表現実践ガイド: 16 進数のカラー コードを照合する方法 はじめに: 正規表現は、パターン マッチングと文字列の検索のための強力で柔軟なツールです。 Go 言語では、組み込みの正規表現パッケージ regexp を使用してこれらの操作を実装できます。この記事では、Go 言語で正規表現を使用して 16 進数のカラーコードを照合する方法を紹介します。正規表現パッケージのインポート まず、Go 言語の正規表現パッケージ regexp をインポートする必要があります。コードの先頭に次の import ステートメントを追加できます。

PHP 正規表現の動作: 文字と数字の一致 PHP 正規表現の動作: 文字と数字の一致 Jun 22, 2023 pm 04:49 PM

PHP 正規表現の練習: 文字と数字の照合 正規表現は、文字列の照合に使用されるツールであり、文字列の検索、置換、分割などの操作を簡単に実装できます。正規表現は、PHP 開発においても非常に便利なツールです。この記事では、PHP 正規表現を使用して文字と数字を一致させる方法を紹介します。単一文字の一致 単一文字を一致させるには、正規表現で文字クラスを使用できます。文字クラスは角かっこ [] で表されます。その中の文字は、一致する文字を表します。ハイフン - を使用して範囲を表すことができます。

PHP 正規表現: 厳密な一致とあいまいな包含の除外 PHP 正規表現: 厳密な一致とあいまいな包含の除外 Feb 28, 2024 pm 01:03 PM

PHP 正規表現: 完全一致と除外 ファジー包含正規表現は、プログラマがテキストを処理する際に効率的な検索、置換、フィルタリングを実行できる強力なテキスト マッチング ツールです。 PHP では、正規表現は文字列処理やデータ マッチングにも広く使用されています。この記事では、PHP で完全一致を実行し、あいまい包含操作を除外する方法に焦点を当て、具体的なコード例を使用して説明します。完全一致 完全一致とは、バリエーションや余分な単語ではなく、正確な条件を満たす文字列のみと一致することを意味します。

PHP 文字列マッチングのヒント: あいまいな組み込み式を避ける PHP 文字列マッチングのヒント: あいまいな組み込み式を避ける Feb 29, 2024 am 08:06 AM

PHP 文字列マッチングのヒント: あいまいな組み込み式を避ける PHP 開発では、文字列マッチングは一般的なタスクであり、通常は特定のテキスト コンテンツを検索したり、入力形式を検証したりするために使用されます。ただし、一致の精度を確保するために、曖昧な包含式の使用を避ける必要がある場合があります。この記事では、PHP で文字列マッチングを行うときにあいまいな包含式を回避するためのテクニックをいくつか紹介し、具体的なコード例を示します。完全一致には preg_match() 関数を使用します。 PHP では、preg_mat を使用できます。

Jedi Submarine 2 でのマッチング方法 Jedi Submarine 2 でのマッチング方法 Feb 27, 2024 pm 08:43 PM

Jedi Submarine 2 は、高品質の傑作ゲームプレイを備えたサードパーソン シューティング ゲームです。友達と一緒にオンライン シューティング バトルの操作の楽しさを探索できる、エキサイティングなゲームプレイがたくさんあります。ゲーム内のオンライン モードはマッチング可能です。一部のプレイヤーは私と対戦することができます。マッチングの操作方法がまだわかりません。今回は、ジェダイ サブマリン 2 のマッチング操作チュートリアルを紹介します。回答: 惑星インターフェイスで [クイック マッチ] をクリックします。ジェダイ サブマリン 2 のマッチング方法. ジェダイ サブマリン 2 のクイック マッチングは非常に優れた機能で、プレイヤーが一緒にマッチングするチームメイトを見つけたり、一緒にミッションに参加したり、より高いミッション評価を得るためにお互いに協力したりするのに役立ちます。マッチング オプションはプラネット インターフェースにあります。タスクを探しているとき、またはパブリック ルームを表示しているときは、下にクイック マッチングが表示されます。クリックしてマッチングを開始します。プレイヤーがクロスレベリングをオンにした場合

PHP 正規表現: HTML 内のすべての textarea タグと一致する方法 PHP 正規表現: HTML 内のすべての textarea タグと一致する方法 Jun 22, 2023 pm 09:27 PM

HTML は、Web ページ上にコンテンツを表示するために一般的に使用されるページ マークアップ言語です。 HTML では、textarea タグは、ユーザーがテキストを入力または編集できるテキスト ボックスを作成するために使用されます。ページからすべての textarea タグとそのコンテンツを抽出する必要がある場合、PHP 正規表現はシンプルで効果的なソリューションを提供します。この記事では、PHP 正規表現を使用して HTML 内のすべての textarea タグを照合する方法を学びます。通常のテーブルを理解する

Java での型の不一致 - java.lang.ClassCastException Java での型の不一致 - java.lang.ClassCastException Jun 24, 2023 pm 09:30 PM

Java は厳密に型指定された言語であるため、変数の型をコンパイル時に明確に決定する必要があり、これによりプログラムのセキュリティがある程度確保されます。ただし、実行時に型変換例外 java.lang.ClassCastException が発生することがあります。この例外は Java プログラムに表示されます。プログラムがオブジェクトを互換性のない型に変換しようとすると、この例外がスローされます。 Java.lang.ClassCastExcepti

PHP で正規表現を使用して複数の連続する特定の文字に一致する方法 PHP で正規表現を使用して複数の連続する特定の文字に一致する方法 Jun 22, 2023 pm 08:15 PM

正規表現は、PHP で広く使用されている強力なテキスト処理ツールです。一般的な使用法の 1 つは、複数の連続するスペース、複数の連続するカンマなどを一致させるなど、複数の連続する特定の文字を一致させることです。この記事では、この機能を実現するために PHP で正規表現を使用する方法を紹介します。 PHP では、preg_match() 関数を使用して正規表現のマッチングを実行できます。この関数には、正規表現と照合する文字列の 2 つのパラメータが必要です。試合が成功した場合

See all articles