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为前端传过来的数组 利用封装拼接进行模糊或者精确的多条件搜素
不好的地方 代码不健壮 不利于维护
方法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; }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci Laravel5实现模糊匹配加多条件查询功能实现步骤详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Go Language Panduan Praktikal Ungkapan Biasa: Cara Memadankan Kod Warna Heksadesimal Pengenalan: Ungkapan biasa ialah alat yang berkuasa dan fleksibel untuk padanan corak dan mencari rentetan. Dalam bahasa Go, kita boleh menggunakan pakej ekspresi biasa terbina dalam regexp untuk melaksanakan operasi ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa untuk memadankan kod warna heksadesimal dalam bahasa Go. Mengimport pakej ungkapan biasa Pertama, kita perlu mengimport pakej ekspresi biasa regexp bahasa Go. Anda boleh menambah pernyataan import berikut pada permulaan kod: i

Amalan ungkapan biasa PHP: memadankan huruf dan nombor Ungkapan biasa ialah alat yang digunakan untuk memadankan rentetan, yang boleh melaksanakan carian rentetan, penggantian, pemisahan dan operasi lain dengan mudah. Ekspresi biasa juga merupakan alat yang sangat berguna dalam pembangunan PHP. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan huruf dan nombor. Memadankan Aksara Tunggal Untuk memadankan aksara tunggal, anda boleh menggunakan kelas aksara dalam ungkapan biasa. Kelas aksara diwakili oleh kurungan segi empat sama []. Aksara di dalamnya mewakili aksara yang boleh dipadankan Anda boleh menggunakan tanda sempang - untuk mewakili julat.

Ungkapan Biasa PHP: Padanan Tepat dan Pengecualian Ungkapan tetap kemasukan kabur ialah alat padanan teks yang berkuasa yang boleh membantu pengaturcara melakukan carian, penggantian dan penapisan yang cekap semasa memproses teks. Dalam PHP, ungkapan biasa juga digunakan secara meluas dalam pemprosesan rentetan dan pemadanan data. Artikel ini akan menumpukan pada cara melakukan pemadanan tepat dan mengecualikan operasi kemasukan kabur dalam PHP dan akan menggambarkannya dengan contoh kod khusus. Padanan tepat Padanan tepat bermaksud padanan hanya rentetan yang memenuhi syarat yang tepat, bukan sebarang variasi atau perkataan tambahan.

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Dalam pembangunan PHP, pemadanan rentetan ialah tugas biasa, biasanya digunakan untuk mencari kandungan teks tertentu atau untuk mengesahkan format input. Walau bagaimanapun, kadangkala kita perlu mengelak daripada menggunakan ungkapan kemasukan yang tidak jelas untuk memastikan ketepatan padanan. Artikel ini akan memperkenalkan beberapa teknik untuk mengelakkan ungkapan kemasukan yang samar-samar semasa melakukan pemadanan rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi preg_match() untuk padanan tepat Dalam PHP, anda boleh menggunakan preg_mat

Jedi Submarine 2 ialah permainan menembak orang ketiga dengan permainan hebat yang berkualiti tinggi. Ia mempunyai banyak permainan menarik yang membolehkan rakan meneroka keseronokan operasi pertempuran menembak dalam talian. Beberapa pemain I masih tidak tahu bagaimana untuk mengendalikan pemadanan. Dalam keluaran ini, saya akan berkongsi dengan anda langkah-langkah padanan tutorial operasi Jedi Submarine 2. Jawapan: Klik Padanan Pantas pada antara muka planet. Kaedah pemadanan Jedi Submarine 2. Pemadanan pantas Jedi Submarine 2 ialah fungsi yang sangat baik Ia boleh membantu pemain mencari rakan sepasukan untuk dipadankan bersama, memasuki misi bersama-sama dan bekerjasama antara satu sama lain untuk mendapatkan penilaian misi yang lebih tinggi. Pilihan padanan adalah pada antara muka planet Apabila mencari tugas atau melihat bilik awam, akan ada padanan pantas di bawah. Jika pemain menghidupkan meratakan silang

HTML ialah bahasa penanda halaman yang biasa digunakan untuk memaparkan kandungan pada halaman web. Dalam HTML, tag textarea digunakan untuk membuat kotak teks yang membolehkan pengguna memasukkan atau mengedit teks. Apabila anda perlu mengekstrak semua teg textarea dan kandungannya daripada halaman, ungkapan biasa PHP boleh memberikan penyelesaian yang mudah dan berkesan. Dalam artikel ini, kita akan belajar cara memadankan semua teg textarea dalam HTML menggunakan ungkapan biasa PHP. Fahami jadual biasa

Sebagai bahasa yang ditaip dengan kuat, Java memerlukan jenis pembolehubah mesti ditentukan dengan jelas pada masa penyusunan, yang memastikan keselamatan program pada tahap tertentu. Tetapi kadangkala, pada masa jalan, kita mungkin menghadapi pengecualian penukaran jenis - java.lang.ClassCastException Pengecualian ini akan muncul dalam program Java Apabila program cuba menukar objek kepada jenis yang tidak serasi, Pengecualian ini akan dibuang. Java.lang.ClassCastExcepti

Ungkapan biasa ialah alat pemprosesan teks yang berkuasa yang digunakan secara meluas dalam PHP. Satu penggunaan biasa adalah untuk memadankan berbilang aksara khusus berturut-turut, seperti memadankan berbilang ruang berturut-turut, berbilang koma berturut-turut, dsb. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa dalam PHP untuk mencapai fungsi ini. Dalam PHP, kita boleh menggunakan fungsi preg_match() untuk melaksanakan padanan ungkapan biasa. Fungsi ini memerlukan dua parameter: ungkapan biasa dan rentetan untuk dipadankan. Jika perlawanan itu berjaya
