У меня есть пользовательское добавленное отношение к модели, по которому я хочу отсортировать своих родителей в соответствии с этим, так что это результат моего API, когда я его называю:
{
"id": 3,
"operator_id": 12,
"created_at": "2019-05-22 19:20:02",
"updated_at": "2019-07-31 18:50:53",
"hits": 4,
"cheapest_room": {
"id": 1,
"accommodation_id": 3,
"bed_count": 1,
"name": null,
"english_name": null,
"description": null,
"english_description": null,
"created_at": "2019-05-25 13:30:00",
"updated_at": "2019-06-30 17:05:18",
"accommodation_room_id": 1,
// this is the field i want to sort by
"sales_price": 100,
"from_date": "2019-05-25 00:00:00",
"to_date": "2019-08-30 23:59:59"
}
Я использую конструктор запросов Spatie длясортировать и фильтровать это, но я хочу сделать сортировку на sales_price для самого дешевого объекта комнаты, это мой код ниже:
public function scopeFilter(){
$data = QueryBuilder::for(Accommodation::class)
->allowedAppends(['cheapestroom'])
->allowedIncludes(['gallery','city','accommodationRooms','accommodationRooms.roomPricingHistorySearch','discounts'])
->allowedSorts([
AllowedSort::custom('discount', new DiscountSort() ,'amount'),
'discounts.amount'
])
->allowedFilters([
AllowedFilter::scope('bed_count'),
AllowedFilter::scope('filter_price'),
AllowedFilter::exact('grade_stars'),
AllowedFilter::exact('city_id'),
AllowedFilter::exact('is_recommended'),
AllowedFilter::exact('accommodation_type_id'),
'name',
])
->paginate(10);
return $data;
}
в краткой форме я хочу отсортировать мой API на основе продажной цены