Задать вопрос
Ответы пользователя по тегу Laravel
  • Как получить категории и товары через бренд?

    alexvdv
    @alexvdv Автор вопроса
    $parts = Part::with('categories')->where('parts.brand_id','=', $brand->id)->get(); // Получил запчасти привязанные к бренду
    
            foreach($parts as $part)
            {
                foreach($part->categories as $category)
                {
                    // Привязываем категорию к бренду через pivot;
                }
            }


    Еще вопрос, когда например мне нужен замудренный каталог или что-то не стандартное, как я выше скинул + большое количество записей, я же могу например сделать сводную таблицу pivot_brаnd_categories и в фоновом режиме, использую php workers и менеджер очередей, раз в сутки например перебирать все категории и привязывать их к бренду, и по запросу просто отдавать нужные категории, без долгих обращений к БД . На сколько это хорошее решение?

    Вообщем, пока остановился на таком варианте, требуемые функции выполняет:

    public function partsByBrand($brand, $category)
        {
            if(isset($category) && !empty($category))
            {
                $parts = Part::where('brand_id', '=', $brand->id)->whereHas('categories', function ($query) use ($category)
                {
                    return $query->where('category_id', $category->id);
                })->get();
    
                return $parts;
            }
    
            $brand_categories = PartCategory::whereHas('parts', function($query) use ($brand)
            {
                return $query->whereHas('brand', function($query) use ($brand) {
                    return $query->where('brand_id', $brand->id);
                });
            })->orderBy('created_at', 'desc')->get();
    
            return $brand_categories;
        }
    Ответ написан
    Комментировать