@Alionides

Как отобразить все продукты из категории и все подкатегории?

Я пытаюсь отобразить все продукты из категории и все подкатегории

Вот моя структура таблицы категорий:

id parent_id name
1 NULL Vehicles
2 1 Cars
3 2 Motorcycles

но я получаю только родителя и его вспомогательные данные. Я хочу получить данные о родительских и дополнительных подписках.

вот модель моей категории

public function subproducts()
{
return $this->hasManyThrough(Product::class, self::class, 'parent_id', 'category_id');
}

public function products() {
return $this->hasMany(Product::class);
}

}


вот мой продукт

public function categories() {
return $this->belongsTo(Category::class, 'category_id');
}


а это контроллер

$category = Category::with(['products', 'subproducts'])->where('slug', $slug)->first();
$allProducts = $category->products->merge($category->subproducts);

dd($allProducts);
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DenisDangerous
Воспользуйся Nested Sets
https://github.com/lazychaser/laravel-nestedset

Без деревьев тут никак. Тупо по parent_id с рекурсией, зачем оно надо, когда есть отличные решения.
Один из плюсов Nested Sets - это быстродействие на выборку, неограниченная вложенность.

Минус - ресурсоемки операции по созданию, удалению, перемещению элемента
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы