Я реализую несколько фильтров категории для многоуровневой навигации. Я получаю результат в соответствии с моим требованием, но размер коллекции идет неправильно, остается таким же, как размер коллекции родительских категорий.
Есть ли другой способ реализовать эту функциональность.
Я изменил следующий код:
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);
Но так как многоуровневая навигация идет откуда-то еще, а не из коллекции продуктов.
хотел бы знать откуда. И как я могу применить несколько фильтров категории там?
magento2
category
layered-navigation
multiselect-attribute
Панкадж Бхопе
источник
источник
Ответы:
Пожалуйста, посмотрите на исследование, которое я провел в отношении этого и окончательного решения (мой ответ на вопрос) здесь: Magento 2.1.6. Количество страниц в таблице продуктов и количество записей при программном добавлении фильтра с использованием различных методов.
источник
Реализовать фильтр нескольких категорий в magento 2
источник