Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Saya Boleh Merangkaikan Klausa WHERE dengan Cekap untuk Pertanyaan Kompleks dalam Laravel Eloquent?
Dalam Laravel Eloquent, mentakrifkan pertanyaan kompleks selalunya melibatkan rantaian berbilang klausa tempat. Walaupun pendekatan ini berfungsi, ia boleh kelihatan membosankan dan tidak teratur.
Walau bagaimanapun, terdapat cara yang lebih baik untuk menstrukturkan pertanyaan sedemikian.
Laravel memperkenalkan keupayaan untuk menghantar tatasusunan bersarang kepada kaedah where, membolehkan anda menentukan berbilang syarat secara berbutir.
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '<>', 'value_2'], // ... additional conditions ]);
Dalam versi Laravel yang terdahulu, anda boleh menghantar tatasusunan syarat terus kepada kaedah where. Walau bagaimanapun, pendekatan ini hanya berfungsi jika semua syarat memerlukan operator AND.
$matchThese = ['field' => 'value', 'another_field' => 'another_value']; $results = User::where($matchThese)->get();
Pilihan lain dalam versi pra-Laravel 5.3 ialah menggunakan orWhere kaedah untuk menggabungkan berbilang kumpulan keadaan. Ini mengakibatkan keadaan ATAU antara kumpulan.
$matchThese = ['field' => 'value', 'another_field' => 'another_value']; $orThose = ['yet_another_field' => 'yet_another_value']; $results = User::where($matchThese) ->orWhere($orThose) ->get();
Dengan menggunakan teknik ini, anda boleh menulis pertanyaan yang lebih cekap dan boleh dibaca, walaupun semasa berurusan dengan keadaan WHERE yang kompleks.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Merangkaikan Klausa WHERE dengan Cekap untuk Pertanyaan Kompleks dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!