Ich möchte alle untergeordneten Kategorien einer bestimmten übergeordneten Kategorie erfassen. Ich gehe davon aus, dass der beste Weg, dies zu tun, darin besteht, die ID des Elternteils und die zurückgegebenen untergeordneten Kategorien zu verwenden. Ich möchte auch deren untergeordnete Kategorien abrufen.
8
$subcats = $subcategory->getChildrenCategories();
Antworten:
Überprüfen Sie das folgende Beispiel, um die Liste aller Unterkategorien einer bestimmten übergeordneten Kategorie mithilfe der übergeordneten Kategorie-ID mit objectManager abzurufen.
=====
Überprüfen Sie das folgende Beispiel, um alle Unterkategorien einer bestimmten übergeordneten Kategorie mithilfe der übergeordneten Kategorie-ID im Repository aufzulisten.
Fügen Sie zunächst CategoryRepository im Konstrukt hinzu:
Jetzt können Sie den folgenden Weg verwenden:
quelle
Sie müssen Ihrer Klasse eine Abhängigkeit hinzufügen
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory
.So was:
Jetzt müssen Sie nur noch die Methode
getDescendants
mit dem$category
Objekt als Parameter und der Anzahl der Ebenen aufrufen, die Sie für Unterkategorien benötigen (in Ihrem Fall 2).quelle
$block->getDescendents($category, 2)
wo$category
sich die Hauptkategorie befindet. (Ich weiß nicht, woher du das bekommst).Versuchen Sie immer, das Repository zu verwenden. Hier ist ein Beispiel.
Injizieren
CategoryRepository
durch KonstruktJetzt können Sie folgende Methoden verwenden:
Für 2-stufige Kinderkategorie:
quelle
\Magento\Catalog\Api\CategoryRepositoryInterface
quelle
Verwenden Sie den folgenden Code, um alle aktiven untergeordneten Kategorien einer bestimmten Kategorie abzurufen.
Die Funktion getChildCategories ($ categoryId) gibt alle untergeordneten Kategorien an. Wobei $ categoryId - die übergeordnete Kategorie-ID ist
$ category-> getChildren () - Dies gibt alle IDs der Chid-Kategorien an.
quelle