Laravel menyediakan beragam cara untuk mengolah data dari database menggunakan Eloquent maupun Query Builder. Dengan adanya hal tersebut, kita bisa lebih menghemat waktu dalam mengembangkan aplikasi.
Pada catatan kali ini, aku akan menuliskan mengenai cara menggunakan multiple where clause pada eloquent Laravel.
Contoh Kasus
Contoh raw query yang akan dibuat pada eloquent adalah sebagai berikut:
select * users where status = 1 and role = 'member' and city_id = 5 and membership_status = 'pro'
Pada raw query di atas terdapat 4 macam kriteria dari user untuk ditampilkan yang diminta yaitu:
- status = 1
- role = ‘member’
- city_id = 5
- membership_status = ‘pro’
Perlu diingat, karena semua kriteria dihubungkan menggunakan and maka itu artinya nilai semua kriteria harus terpenuhi secara tepat. Tidak boleh ada salah satu kondisi yang tidak terpenuhi misal status = 2 atau city_id = 1.
Menggunakan Multiple Where Clause Pada Eloquent
Kita bisa mengubah raw query yang terdapat pada contoh di atas menggunakan Eloquent sebagai berikut:
$user = User::where('status', 1)
->where('city_id', 5)
->where('role', 'staff')
->where('membership_status', 'pro')
->get();
Pada contoh penggunaan eloquent di atas, urutan penempatan where antara kriteria yang satu dengan yang lain tidak menjadi masalah karena derajatnya sama saja.
Selain menggunakan cara di atas, kita bisa menggunakan satu method where yang berisi array sebagai berikut untuk mempersingkat kodingan:
$user = User::where(
[
'status' => 1,
'city_id' => 5,
'role' => 'staff',
'membership_status', 'pro'
]
)
->get();
Kalau aku lebih sering menggunakan cara kedua untuk kriteria yang semuanya dihubungkan menggunakan and. Rasanya tampak lebih rapi dan mudah dipahami.
Kalau kalian bagaimana?