Jak zaimplementować filtr wielu kategorii w nawigacji warstwowej Magento 2


19

Wdrażam filtry wielu kategorii do nawigacji warstwowej. Otrzymuję wynik zgodnie z moim wymaganiem, ale rozmiar kolekcji idzie źle, pozostaje taki sam jak rozmiar kolekcji kategorii nadrzędnych.

Czy jest jakiś inny sposób na wdrożenie tej funkcjonalności?

Zmodyfikowałem następujący kod:

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;
    }

otrzymuje addCategoryFilter($category)zaddCategoriesFilter('eq' => $categoriesArray);

Ale ponieważ nawigacja warstwowa pochodzi z innego miejsca, a nie z kolekcji produktów.

chciałbym wiedzieć skąd. I jak mogę zastosować filtry wielu kategorii?


1
Czy możesz podać kod? na którym pliku przefiltrowałeś kolekcję?
Codrain Technolabs Pvt Ltd

1
dodano kod, proszę spojrzeć
Pankaj Bhope

1
Czy możesz mi również podać nazwę pliku lub ścieżkę?
Codrain Technolabs Pvt Ltd

1
Nazwa pliku: Category.php Ścieżka: katalog_główny / vendor / magento / moduł-wyszukiwanie katalogów / Model / Warstwa / Filtr / Category.php
Pankaj Bhope

Odpowiedzi:



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.