Laravel Eloquent whereHas. Несколько знчений в условии
Нужно отобрать склады, на которых есть все товары из списка. Сейчас так (не очень красиво):
$storehouses=Storehouse::where('storehouses.user_id',$storeHouseUserId);
foreach($items as $productId)
{
$storehouses=$storehouses->whereHas('products', function ($q) use ($productId)
{$q->where('product_id',$productId);});
}
$result=$storehouses->orderByDesc('storehouses.extra_time_ship')->get();
Подскажите, пожалуйста, как облагородить этот кусок кода? Без использования цикла. Код дает нужный результат.
Ответы (1 шт):
Автор решения: Maxim
→ Ссылка
Я думаю как то так, можно добиться тогоже без цикла
$storehouses = Storehouse::where('storehouses.user_id', $storeHouseUserId)
->whereHas('products', function ($query) use ($items) {
$query->whereIn('product_id', $items);
})
->orderByDesc('storehouses.extra_time_ship')
->get();