So implementieren Sie Filter für mehrere Kategorien in der Magento 2-Ebenen-Navigation


19

Ich implementiere mehrere Kategoriefilter für die geschichtete Navigation. Ich erhalte das gewünschte Ergebnis, aber die Größe der Sammlung stimmt nicht mit der Größe der Sammlung der übergeordneten Kategorien überein.

Gibt es eine andere Möglichkeit, diese Funktionalität zu implementieren.

Ich habe den folgenden Code geändert:

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

ersetzte die addCategoryFilter($category)mitaddCategoriesFilter('eq' => $categoriesArray);

Aber da die geschichtete Navigationsanzahl von einem anderen Ort stammt und nicht von der Produktkollektion.

würde gerne wissen woher. Und wie könnte ich dort mehrere Kategoriefilter anwenden?


1
Könnten Sie bitte den Code teilen? Nach welcher Datei haben Sie die Sammlung gefiltert?
Codrain Technolabs Pvt Ltd

1
fügte hinzu, den Code bitte werfen Sie einen Blick
Pankaj Bhope

1
Könnten Sie mir auch den Dateinamen oder den Pfad geben?
Codrain Technolabs Pvt Ltd

1
Dateiname: Category.php Pfad: root_dir / vendor / magento / module-catalog-search / Model / Layer / Filter / Category.php
Pankaj Bhope

Antworten:



1

So implementieren Sie Filter für mehrere Kategorien in Magento 2Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.