اجرای چندین دستور where در لاراول به صورت همزمان

من تو پروژه خودم از Eloquent لاراول استفاده می کینم و میخواستم ببینم چطور میشه با استفاده از دستور where لاراول چندین شرط را به صورت همزمان بررسی کرد؟

در حالت عادی این شرط ها را به صورت زیر می نویسم:

$results = User::where('this', '=', 1)
    ->where('that', '=', 1)
    ->where('this_too', '=', 1)
    ->where('that_too', '=', 1)
    ->where('this_as_well', '=', 1)
    ->where('that_as_well', '=', 1)
    ->where('this_one_too', '=', 1)
    ->where('that_one_too', '=', 1)
    ->where('this_one_as_well', '=', 1)
    ->where('that_one_as_well', '=', 1)
    ->get();

جواب درستی از این نحوه نوشتن می گیرم ولی نمیدونم که این کار درسته یا نه؟

برچسب ها:
پرسیده شده در: 6 سال قبل
آمار بازدید: 3230
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای سوال با ۱۰ رأی دارای سوال با ۱۰ رأی
2

اگر از لاراول 5.3 به بالا استفاده می کنید شما می توانید چندین شرط را با استفاده از آرایه ها ارسال کنید:

$query->where([
    ['column_1', '=', 'value_1'],
    ['column_2', '<>', 'value_2'],
    [COLUMN, OPERATOR, VALUE],
    ...
])

اما توجه داشته باشید که کدهای شما نیز به درستی کار می کند و با استفاده از آن می توانید چندین شرط پشت سر هم را ایجاد کنید.

ارسال شده در: 6 سال قبل
pirniak (351)
بیش از ۱ سال عضویت در روکسو بیش از ۱ سال عضویت در روکسو دارای سوال با ۱۰ رأی دارای سوال با ۱۰ رأی ارسال کننده پاسخ با ۱۰ رای ارسال کننده پاسخ با ۱۰ رای دارای ۲۰۰ کارما دارای ۲۰۰ کارما
3

علاوه بر مواردی که دوست عزیزمون pirniak گفتند شما می توانید شرط را به صورت زیر بنویسید:

User::where(['column_1' => 'value_1','column_2' => 'value_2'])->get();

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

ارسال شده در: 6 سال قبل
masoudsalehi (1725)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما نظرات دریافتی:‌ بیش از 50 نظرات دریافتی:‌ بیش از 50 دارای 25 پاسخ صحیح دارای 25 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
جهت ارسال پاسخ ابتدا عضو سایت شوید.