Как получить коллекцию по нескольким категориям сразу

Доброго времени суток, недавно начал работать с этим движем и столкнулся со сложностью, не могу понять как получить коллекцию по нескольким категориям сразу. Использую class 

$col = new shopProductsCollection('category/1,3')
$col->getProducts()

но передать туда несколько категорий не получается возражает результат только по одной. Делать в цикле нельзя, так как выборка передаётся в другой метод. Может кто-нибудь подскажет. Есть ли возможность получить коллекцию по нескольким категориям.

1 ответ

  • 1
    Михаил Ушенин Webasyst 12 октября 2018 13:45 #

    Не очень удобный обходной вариант: создать скрытую категорию, в неё добавить все товары из нужных двух категорий и делать выборку из этой скрытой категории. Недостаток: при обновлении списка товаров в исходных категориях придётся обновлять его и в скрытой категории.

    • +2
      enso_studio@mail.ru enso_studio@mail.ru 12 октября 2018 13:54 #

      к чему такие извращения? :D

      $c = new shopProductsCollection('search/status=1');
      $c->addWhere('p.category_id IN (1,3)');

      • +2
        Павел Трофимов Павел Трофимов 12 октября 2018 14:00 #

        При таком раскладе вроде бы будут отданы только те товары, у которых эти категории числятся как основные... Не?

      • 0
        FPM FPM 12 октября 2018 14:09 #

        AlexZhAlexZh Сегодня 14:08 #

        Спасибо, помогло. Но действительно берёт только товары которые с самой категории без вложенных. Хотя так 

        new shopProductsCollection('category/14');

        Тоже не берёт вложенные.

        • +2
          enso_studio@mail.ru enso_studio@mail.ru 12 октября 2018 14:29 #

          это зависит от настроек категории, опция "выводить товары из подкатегорий", 

          • 0
            FPM FPM 12 октября 2018 15:17 #

            Большое спасибо.

            А это можно указать это в выборке. Нашёл метод  addJoin, посмотрел сам класс, но не понял он вообще к какой таблице обращается, похоже что к shop_category_params или shop_category_products, какой join нужно прописать. 

            Возможно есть метод, который возвращает все дочерние категории. 

    • 0
      FPM FPM 12 октября 2018 14:04 #

      Спасибо за ответ, попробую так сделать.  

      Но получается что сделать выборку разом из нескольких категорий нельзя. Жалко. Может есть другие классы для этого?  

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите