Для того чтобы получить все товары из родительских категорий, необходимо выполнить несколько шагов.
1. Определите модель Category
и связь с моделью Product
.
namespace AppModels; use IlluminateDatabaseEloquentModel; class Category extends Model { public function products() { return $this->hasMany(Product::class); } }
2. Создайте метод в контроллере или в сервисном классе, который будет выполнять необходимую логику для получения товаров из родительских категорий.
use AppModelsCategory; public function getProductsFromParentCategories() { $parentCategories = Category::whereNull('parent_id')->get(); $products = []; foreach ($parentCategories as $parentCategory) { $products = array_merge($products, $parentCategory->products->toArray()); } return $products; }
3. Используйте метод getProductsFromParentCategories()
из контроллера или сервиса для получения всех товаров из родительских категорий.
$products = $this->getProductsFromParentCategories();
В результате выполнения этих шагов вы получите массив всех товаров, которые находятся в родительских категориях.