Как отфильтровать связанные данные из элоквент коллекции?
Имеется метод, который на странице категории товара, выводит товары из этой категории. Делаю так:
public function category(ProductFilterRequest $request, $code){
$skusQuery = Category::with('skus')->ByCode($code)->first();
//$skusQuery = Category::with('skus.product')->ByCode($code)->first();
//Здесь в категории 4 продукта и в каждом продукте несколько вариантов ску.
if($request->filled('price_from')){
$skusQuery->skus()->where('price', '>=', $request->price_from));
//если делать дамп энд дай тут, использую $skusQuery->skus->where, то они фильтруются но только здесь.
}
if($request->filled('price_to')){
$skusQuery->skus()->where('price', '<=', $request->price_to));
}
...
//К этому моменту уже никакой фильтрации нет. Так же выводится всё, как и в начале.
$sku = $skusQuery->skus()->simplePaginate()->withPath($request->getUri());
return view('categories', compact(['sku', 'code']));
}
У модели категории сделал связь 'ко многим через'. Чтобы через продукт получить ску(товарные предложения).
public function skus()
{
return $this->hasManyThrough(Sku::class, Product::class);
}
Можно конечно просто получать все продукты или все товарные предложения, а потом их фильтровать по категориям. Но мне кажется это не правильно. Уже продолжительное время не могу понять как через категории фильтровать товарные предложения.