Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membina Kompleks ATAU dan DAN Pertanyaan dengan Cekap dalam Laravel Eloquent?
Dalam pertanyaan Laravel Eloquent, anda mungkin menghadapi senario di mana anda memerlukan keadaan kompleks yang melibatkan operator OR dan AND. Untuk mengendalikan pertanyaan sedemikian dengan berkesan, Laravel menyediakan ciri pengumpulan logik yang membolehkan anda mengumpulkan berbilang keadaan secara logik.
Contoh:
Pertimbangkan pertanyaan berikut:
WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)
Penyelesaian menggunakan Logik Pengumpulan:
Pengumpulan Logik Laravel membolehkan anda menyusun keadaan ke dalam penutupan bersarang. Untuk pertanyaan di atas, kod akan kelihatan seperti ini:
Model::where(function ($query) { $query->where('a', '=', 1) ->orWhere('b', '=', 1); }) ->where(function ($query) { $query->where('c', '=', 1) ->orWhere('d', '=', 1); });
Dengan menyarangkan syarat dalam penutupan, anda boleh mengumpulkannya secara logik dan mencapai hasil pertanyaan yang diingini.
Mentah Alternatif SQL:
Walaupun pengumpulan logik ialah pendekatan yang disyorkan, anda juga boleh menggunakan SQL mentah untuk mengendalikan kompleks pertanyaan. Walau bagaimanapun, ia secara amnya tidak diutamakan kerana ia boleh membawa kepada kelemahan keselamatan dan menjadikan pertanyaan kurang boleh dibaca.
Atas ialah kandungan terperinci Bagaimana untuk Membina Kompleks ATAU dan DAN Pertanyaan dengan Cekap dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!