Я пытаюсь получить данные из базы данных, затем упорядочить их в соответствии с типом сортировки, который отправляется, поэтому я делаю это
public function getStoreProducts($store_id): array
{
$products = Product::with('translation', 'image', 'price', 'group.translation', 'group.subcategory.subCategoryTranslations','store')
->where('store_id',$store_id)->where('product_status', '=', 2)
->groupBy('group_id');
if (request()->has('sort') && !empty(request()->get('sort'))) {
if (request()->get('sort') === 'date') {
$products = $products->orderBy('created_at', 'DESC');
}elseif (request()->get('sort') == 'price'){
$products = $products->whereHas('price')->with(array('price'=>function($query){
$query->orderBy('sell_price','asc');
}));
}elseif (request()->get('sort') == 'price-desc'){
$products = $products->whereHas('price')->with(array('price'=>function($query){
$query->orderBy('sell_price','desc');
}));
}
}
return $this->toArray($products->paginate(15));
}
, чтобы данные сортировались, но когда я передаю их фрактальному преобразователю, они получаютнесортировать, так как я могу предотвратить эту операцию
$products = $this->repository->getStoreProducts($store_id);
$data = FractalFacade::collection($products["data"])
->transformWith(new ProductTransformer())
->parseIncludes(['translation', 'price', 'images', 'group.sub_category_translation', 'group.group_translation'])
->toArray();
dd($data);
Но я заметил, что эта проблема возникает, когда сортировка выполняется по отношению. Так, например, когда я сортирую, основываясь на поле create_at, являющемся полем в продукте, которое получают Продукты.сортировать по мере ввода, но при сортировке данных на основе цены, которая является отношением с продуктами, поэтому введенные данные отсортированы, но они не отсортированы, поэтому как решить эту проблему