@Analka

Как вывести категории и товары в Laravel?

есть модель Category

class Category extends Model
{
    use HasFactory;

    protected $table = 'categories';

    public function products()
    {

        return $this->hasMany(Product::class);
    }
}


и модель Product

class Product extends Model
{
    use HasFactory;

    protected $table = "products";

    public function category() {

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


как вывести категории и все товары к ним (такой момент, что нужно вывести только те категории у которых есть товары)

вывод такой:
-Название категории
---Товар 1
---Товар 2
---Товар 3
-Название категории 2
---Товар 4
---Товар 5
---Товар 6


попробовал так, но не выдает товары

$column = [
            'id',
            'name',
            'path',
            'image',
            'slug',
        ];

        $columnProduct = [
            'id',
            'name',
            'path',
            'image',
            'slug',
        ];

        $categories = Category::select($column)
            ->with(['products' => function($query) use ($columnProduct, $shopId) {
                $query->select($columnProduct);
                $query->where('shop_id', $shopId);
            }])
            ->where('is_published', 1)
            ->get();
  • Вопрос задан
  • 468 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы