Запросом подвесил сервер.
Задача такая:
Есть некие товары, которые имею связи по категории и по городу.
Необходимо для любого товара выбрать 4-е случайных родственных.
То есть, сначала 4-е в той же категории и в том же городе, если нету, тогда в той же категории, ну и иначе любые 4-е или если вообще меньше 4-х, то где те, что есть.
Написал такой запрос (см. ниже), но apache кричит, что недостаточно памяти.
$ads = Ad::where('publish', 1)
->where('category_id', $cat_id)
->where('id', '!=', $this->id)
->inRandomOrder();
if($ads->count() > 4){
$res = $ads->where('city_id', $city_id);
$count = $res->count();
if($count >= 4){
$res = $res->take(4)->get();
}else{
$res = $res->union($ads->take(4-$count))->get();
}
}else{
$res = $ads->get();
}
return $res;
Сборка персонального компьютера от Artline: умный выбор для современных пользователей