سوال بپرسید
1

چگونه می توان چندین شرط کوئری Where در لاراول و Eloquent نوشت؟

سوال بپرسید

من از لاراول 5.7 استفاده می کنم و با استفاده از ابزار Eloquent می خواستم چندین شرط کوئری where را با یکدیگر ترکیب کرده و خروجی بهتری بدست بیاورم. مثلا شما فرض کنید می خواهم محصولی با مشخصات زیر از پایگاه داده استخراج کنم:

where ---> id == $id
where ---> title == $title
where ---> body == $body

اینطور که من مطالعه کردم نیازی به نوشتن تک به تک این شرط ها نیست ولی نمی دانم چطور حاصل ترکیبی آنها را بنویسم.

برچسب ها:
گزارش سوال
پرسیده شده در 3 ماه پیش
آمار بازدید: 182

1 پاسخ

5
19 آذر 97 در 15:34

در صورتیکه شما بخواهید با چندین شرط در لاراول یک کوئری واحد را از پایگاه داده دریافت کنید، روش های زیر می تواند به شما کمک کند.

روش اول:

$results = User::where('username', '=', $username)
    ->where('email', '=', $email)
    ->where('id', '=', $id)
    ->get();

این روش اگرچه بدون هیچ مشکلی پاسخ صحیحی دارد ولی راه حل دیگری وجود دارد که شما را حرفه ای تر و حجم کدها را کاهش می دهد.

روش دوم (پیشنهاد بنده):

$results = User::where([
       'username' => $username,
       'email' => $email,
       'id' => $id
])->get();

در واقع با روش دوم کوئری موردنظر شما راحت تر قابل مدیریت است.