У меня есть модель под названием Business (с описанием столбцов, именем, представлением и т. Д. c), она имеет отношение "один ко многим" с моделью "Рейтинг". Я хочу запросить свою бизнес-модель, чтобы она возвращала результат, который проверяет, присутствует ли строка поиска в названии или описании, а также сначала сортирует по бизнесу, имеющему наивысший рейтинг, а затем просматривает его.
Я написал код поискового запроса. найдите ниже:
$business = Business::with('images')
->where('isActive', true)
->where(function ($q) use ($query) {
$q->where('name', 'LIKE', '%' . $query . '%')
->orWhere('description', 'LIKE', '%' . $query . '%');
})->get();
Я знаю, что могу получить средние оценки бизнеса следующим образом:
$averageRating = Rating::where('business_id', $id)->avg('rating');
$business = Business::with(['images'])->get();
foreach ($business as $item) {
$item["rating"] = floor($averageRating);
}
Итак, как мне сделать заказ на основе сначала самых высоких оценок, а затем самых высоких просмотров