Berbilang Rangkaian atau Kumpulan WHERE Klausa dalam Laravel Eloquent
Bekerja dengan berbilang klausa WHERE dalam pertanyaan Laravel Eloquent boleh kelihatan membosankan dan tidak diperhalusi apabila menggunakan sintaks rantaian standard. Walau bagaimanapun, terdapat beberapa pendekatan alternatif yang tersedia untuk meningkatkan keanggunan dan kebolehbacaan kod anda.
Menggunakan Klausa WHERE Berasaskan Tatasusunan
Diperkenalkan dalam Laravel 5.3, tatasusunan- berdasarkan klausa WHERE membenarkan anda mengumpulkan berbilang syarat dalam satu panggilan. Ini boleh mengurangkan bilangan baris kod yang diperlukan dengan ketara, seperti yang dilihat dalam contoh berikut:
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '!=', 'value_2'], ['column_3', '=', 'value_3'], ... ]);
Mengumpulkan Klausa DI MANA untuk DAN Operasi
Jika semua anda Klausa WHERE menggunakan operator AND, anda boleh mengumpulkannya ke dalam tatasusunan dan menyampaikannya kepada kaedah where. Ini serupa dengan pendekatan berasaskan tatasusunan tetapi secara eksplisit menyatakan keadaan DAN.
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $results = User::where($matchThese)->get();
Menggabungkan Kumpulan dengan OR Operator
Untuk mencipta pertanyaan yang lebih kompleks dengan kedua-duanya Operator DAN dan ATAU, anda boleh menggunakan tatasusunan bersarang. Contoh berikut menggabungkan dua teknik sebelumnya:
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; $orThose = ['yet_another_field' => 'yet_another_value', ...]; $results = User::where($matchThese) ->orWhere($orThose) ->get();
Pertanyaan ini akan menjana SQL berikut:
SELECT * FROM users WHERE (field = value AND another_field = another_value AND ...) OR (yet_another_field = yet_another_value AND ...)
Dengan menggunakan pendekatan alternatif ini, anda boleh meningkatkan kejelasan dan kepekatan Pertanyaan yang fasih, mengurangkan keperluan untuk sintaks rantaian bertele-tele dan berulang.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Merangkai atau Mengumpulkan Klausa Berbilang WHERE dengan Cekap dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!