Как реализовать фильтр нескольких категорий в многоуровневой навигации Magento 2


19

Я реализую несколько фильтров категории для многоуровневой навигации. Я получаю результат в соответствии с моим требованием, но размер коллекции идет неправильно, остается таким же, как размер коллекции родительских категорий.

Есть ли другой способ реализовать эту функциональность.

Я изменил следующий код:

public function apply(\Magento\Framework\App\RequestInterface $request)
    {
        $categoryId = $request->getParam($this->_requestVar) ?: $request->getParam('id');
        if (empty($categoryId)) {
            return $this;
        }

        $this->dataProvider->setCategoryId($categoryId);

        $category = $this->dataProvider->getCategory();

        **$this->getLayer()->getProductCollection()->addCategoryFilter($category);**

        if ($request->getParam('id') != $category->getId() && $this->dataProvider->isValid()) {
            $this->getLayer()->getState()->addFilter($this->_createItem($category->getName(), $categoryId));
        }
        return $this;
    }

заменило addCategoryFilter($category)сaddCategoriesFilter('eq' => $categoriesArray);

Но так как многоуровневая навигация идет откуда-то еще, а не из коллекции продуктов.

хотел бы знать откуда. И как я могу применить несколько фильтров категории там?


1
Не могли бы вы поделиться кодом? на каком файле вы фильтровали коллекцию?
Codrain Technolabs Pvt Ltd

1
добавил код, пожалуйста, посмотрите
Pankaj Bhope

1
Не могли бы вы также дать мне имя файла или путь?
Codrain Technolabs Pvt Ltd

1
Имя файла: Category.php Путь: root_dir / vendor / magento / module-catalog-search / Модель / Слой / Фильтр / Category.php
Pankaj Bhope

Ответы:


1

Пожалуйста, посмотрите на исследование, которое я провел в отношении этого и окончательного решения (мой ответ на вопрос) здесь: Magento 2.1.6. Количество страниц в таблице продуктов и количество записей при программном добавлении фильтра с использованием различных методов.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.