Andaikan sekarang saya menerima tatasusunan borang dari hujung hadapan:
$input = $request->input();
mengandungi 4 nilai: e-mel, nama, umur, jantina Kini jadual data perlu disoal berdasarkan nilai yang dimasukkan oleh pengguna , ia akan menjadi pertanyaan kabur, jika umur dan jantina dimasukkan, pertanyaan yang tepat akan dilakukan
Tetapi di sinilah masalahnya. , atau mungkin 4. Kemudian apabila saya menggunakan pembina pertanyaan, adalah mustahil untuk menilai sama ada setiap nilai wujud, dan kemudian menulis pembina Lagipun, pertanyaan kabur dan pertanyaan tepat ditulis secara berbeza, dan sebagai contoh, sekarang saya mempunyai dua medan (e-mel dan nama) memerlukan pertanyaan kabur Laravel untuk pertanyaan kabur ditulis seperti ini:
->di mana('e-mel', 'LIKE', $input['email'])
Kemudian saya perlu menentukan sama ada e-mel dan nama wujud dalam program, dan kemudian menyambung pembina pertanyaan?
Ideanya ialah:
1.email存在,姓名不存在
->where('email', 'LIKE', $input['email'])
2.email不存在,姓名存在
->where('name', 'LIKE', $input['name'])
3.都存在
->where('email', 'LIKE', $input['email'])->->where('name', 'LIKE', $input['name'])
Jumlah kod terlalu besar Jika saya mempunyai sepuluh medan untuk pertanyaan kabur, saya tidak boleh menggunakan pembina sama sekali.
Bolehkah anda beritahu saya jika ada cara lain, seperti:
if($input['email']) $where['email'] = $input['email']
if($input['name']) $where['name'] = $input['name']
Kemudian gunakan:
->where( 'LIKE', $where), supaya saya memasukkan semua situasi yang mungkin wujud atau tidak dalam satu baris
Kaedah penulisan lain disyorkan di Internet:
$where['email'] = ['like', $input['email']], tetapi laravel5.1 saya tidak boleh digunakan.
Adakah anda mempunyai sebarang kaedah yang baik untuk menyelesaikan pertanyaan kabur berbilang keadaan dan pertanyaan bukan kabur?
Laravel boleh melepasi fungsi tanpa nama di mana.
Anda boleh menilai dalam fungsi tanpa nama ini.
Sebagai contoh, seperti ini
Dengan cara ini anda boleh membuat pertimbangan yang sesuai tanpa memusnahkan struktur pembina.
Saya tidak pernah menggunakan 5.1, tetapi 5.4 mempunyai kaedah bila, contoh:
Maksudnya apabila
akan dilaksanakan.$name
tidak kosong, fungsi berikutSila semak sama ada terdapat kaedah yang sama dalam 5.1
Bercakap tentang pembina pertanyaan
where()
方法是返回$this
--supaya anda boleh menulisnya berturut-turut, tetapi ia tidak bermakna anda perlu menulisnya berturut-turut!Apabila terdapat banyak medan, bolehkah menulis gelung for?:
Anda mesti membuat pertimbangan, sama ada anda membuat penghakiman atau rangka kerja membuat penghakiman. Jika terdapat 10 medan untuk pertanyaan fuzzy, bolehkah mysql anda mengendalikannya?