Mencipta Pertanyaan Berbilang Klausa Ringkas dalam Laravel Eloquent
Apabila bekerja dengan Laravel Eloquent, pertanyaan pangkalan data anda dengan berbilang syarat boleh mengakibatkan masa yang panjang rantaian where() panggilan. Untuk meningkatkan keanggunan dan kebolehbacaan pertanyaan anda, mari kita terokai alternatif yang lebih cekap.
Kaedah 1: Ruang Putih Berbutir
Laravel 5.3 memperkenalkan keupayaan untuk melepasi tatasusunan kepada kaedah where(). Setiap tatasusunan dalam mewakili satu syarat, menggunakan sintaks berikut:
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '<', 'value_2'], ... ])
Walaupun kaedah ini mencapai hasil yang diingini, ia mungkin bukan pendekatan yang paling praktikal dalam semua situasi.
Kaedah 2: Pengumpulan Tatasusunan dengan dan() dan orWhere()
Pendekatan serba boleh adalah untuk kumpulkan syarat anda menggunakan tatasusunan dan gunakan kaedah and() dan orWhere(). Secara lalai, and() menghubungkan keadaan dengan operator AND logik, manakala orWhere() menggunakan OR.
$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...]; // Use and() for conjunctive conditions $results = User::where($matchThese)->get(); // Use orWhere() for disjunctive conditions $orThose = ['yet_another_field' => 'yet_another_value', ...]; $results = User::where($matchThese) ->orWhere($orThose) ->get();
Strategi ini menghasilkan pertanyaan yang cekap dan boleh dibaca:
SELECT * FROM users WHERE (field = value AND another_field = another_value) OR (yet_another_field = yet_another_value)
Dengan memilih kaedah yang paling sesuai untuk kes penggunaan khusus anda, anda boleh menyelaraskan pertanyaan anda dan meningkatkan kebolehselenggaraan aplikasi Laravel anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menulis Pertanyaan Berbilang Klausa Ringkas dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!