например:
- Категория 1 (Общий продукт 10) // как я могу это получить
- Категория 1.1 (Общий продукт 5)
- Категория 1.2 (Всего продуктов 3)
- Категория 1.3 (Всего продуктов) Продукт 2)
id: 291,
level: 1,
parent_id: null, //parent category
name: "Chemicals",
bn_name: null,
sector: "product",
slug: "Chemicals",
status: "active",
created_at: "2021-04-16T23:53:52.000000Z",
updated_at: "2021-04-16T23:53:52.000000Z",
**products_count: 0,**
total_items: 1,
sub_categories: [
id: 292,
level: 2,
parent_id: 291,
name: "Activated Carbon",
bn_name: null,
sector: "product",
slug: "Activated-Carbon",
status: "active",
created_at: "2021-04-16T23:53:52.000000Z",
updated_at: "2021-04-16T23:53:52.000000Z",
products_count: 0,
total_items: 0,
sub_categories: [ ]
},
{
id: 293,
level: 2,
parent_id: 291,
name: "Adhesives & Sealants",
bn_name: null,
sector: "product",
slug: "Adhesives-&-Sealants",
status: "active",
created_at: "2021-04-16T23:53:52.000000Z",
updated_at: "2021-04-16T23:53:52.000000Z",
products_count: 0,
total_items: 0,
sub_categories: [ ]
},
{
id: 294,
level: 2,
parent_id: 291,
name: "Agro Chemicals", //child category
bn_name: null,
sector: "product",
slug: "Agro-Chemicals",
status: "active",
created_at: "2021-04-16T23:53:52.000000Z",
updated_at: "2021-04-16T23:53:52.000000Z",
**products_count: 1,**
total_items: 1,
sub_categories: [ ]
}
Код контроллера:
return $categories = Category::rootCategories()->with('subCategories')->withCount('products')->orderBy('name', 'ASC')->get();
Модели категорий:
public static function rootCategories() {
return self::whereNull('parent_id')->where('status', 'active')->orderBy('name', 'ASC');
}
public static function productRootCategories() {
return self::whereNull('parent_id')->where(['status' => 'active', 'sector' => 'product'])->orderBy('name', 'asc');
}
public function subCategories() {
return $this->hasMany(self::class, 'parent_id')->where('status', 'active')->with('subCategories')->withCount('products')->orderBy('name', 'asc');
}
Подробнее здесь: https://stackoverflow.com/questions/671 ... e-main-cat