это в laravel 6.x Я сделал иерархические категории в одной и той же таблице зависимыми от parent_id, в каждой категории много подкатегорий и в каждой категории много товаров, я сделал фильтрацию по товарам, когда пользователь щелкает в категории, это показывает категорию с все это подкатегории с ними продукты все вещи верны. но проблема с подкатегориями продуктов, которые они не фильтруют, как продукты категорий и продуктов подкатегорий. в чем проблема.? Это мощный способ для этой работы .?
это отношения в модели категории
public function subcategory()
{
return $this->hasMany(self::class,'parent_id','id');
}
public function products()
{
return $this->hasMany('App\product','category_id','id');
}
public function parentId()
{
return $this->belongsTo(self::class);
}
public function scopeCatItem($query , $id)
{
return $query->where('id', $id);
}
и этот код в контроллере category_products
$data = Category::CatItem($request->catid)->withTranslations($locale)
->with([ // start with
'products' => function($query) use ($company , $volt) { // first parameter
$query->when($company , function($query) use ($company){
$query->where('company_id', $company);
});
$query->when($volt , function($query) use ($volt){
$query->where('volt', $volt);
});
},
'subcategory' => function($query) use ($company, $volt) { // second parameter
$query->whereHas('products', function ($query) use ($company , $volt) {
$query->when($company , function($query) use ($company){
$query->where('products.company_id', $company);
});
$query->when($volt , function($query) use ($volt){
$query->where('products.volt', $volt);
});
});
},
'subcategory.products' => function($query) use ($company, $volt) { // third parameter
$query->when($company , function($query) use ($company){
$query->where('products.company_id', $company);
});
$query->when($volt , function($query) use ($volt){
$query->where('products.volt', $volt);
});
},
]) // close with
->get();
это код в представлении файл лезвия продуктов
@if(count($item->subcategory))
@include('panels.frontend.sub-filtered_products',['subcategories' => $item->subcategory])
@endif