من تو پروژه خودم از 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();
جواب درستی از این نحوه نوشتن می گیرم ولی نمیدونم که این کار درسته یا نه؟
اگر از لاراول 5.3 به بالا استفاده می کنید شما می توانید چندین شرط را با استفاده از آرایه ها ارسال کنید:
$query->where([
['column_1', '=', 'value_1'],
['column_2', '<>', 'value_2'],
[COLUMN, OPERATOR, VALUE],
...
])
اما توجه داشته باشید که کدهای شما نیز به درستی کار می کند و با استفاده از آن می توانید چندین شرط پشت سر هم را ایجاد کنید.
علاوه بر مواردی که دوست عزیزمون pirniak گفتند شما می توانید شرط را به صورت زیر بنویسید:
User::where(['column_1' => 'value_1','column_2' => 'value_2'])->get();
در این حالت کافیست ستون ها را با مقادیر جایگزین کنید. البته در صورتیکه بخواهید از دستورهای بزرگتر و کوچکتر هم بهره ببرید بهترین روش همین موردی بود که دوست عزیزمون در پاسخ قبلی ارسال کردند.
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.