Ich möchte alle Kategorienamen aus einem bestimmten Geschäft erhalten. Ich versuche:
$categoryFactory = $objectManager->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categories = $categoryFactory->create()
->addAttributeToSelect('*')
->setProductStoreId($store->getId());
foreach ($categories as $category){
$category->getName();
}
Es werden jedoch alle Kategorien in derselben Sprache angezeigt (Ansicht des gleichen Geschäfts).
Funktioniert ->setProductStoreId($store->getId())
also nicht.
Ich bin auch versucht $category->setStoreId($store->getId())->getName()
.
Wie kann ich alle Kategorienamen für eine bestimmte Geschäftsansicht abrufen?
Die direkte Verwendung des Objektmanagers ist nicht die beste / empfohlene Methode, um in Magento Block mit der Konstruktions- und Abrufmethode in Ihrer HTML-Datei zu verwenden.
Weitere Informationen finden Sie unter Blog-Link, Kategoriesammlung pro Geschäft
Mit Block Weg,
Aufruf in der HTML- Datei,
quelle
$context
eine Instanz von sein\Magento\Framework\View\Element\Template\Context
? Gemäß der Konstruktormethode,\Magento\Framework\View\Element\Template
deren Block Ihre Antwort erweitert.\Magento\Framework\View\Element\Template
bereits\Magento\Store\Model\StoreManagerInterface
über die geschützte Klasseneigenschaft zugegriffen$_storeManager
werden. Daher ist es nicht erforderlich, sie in den Konstruktoren unserer eigenen Klassen auf eine andere Eigenschaft zu setzen. +1 Für die Unterstützung bei der Frage des OP, obwohl dies sehr hilfreich war, danke.Erstellen Sie einen Block und fügen Sie den folgenden Code zu Ihrem Block hinzu.
Und $ block-> getCategoryCollection () hat dies in Ihrer Vorlagendatei verwendet. um eine Kategoriesammlung zu erhalten
quelle
Methode 1 - Verwenden der Abhängigkeitsinjektion (DI)
Hier ist der Beispielcode zum Abrufen der Liste aller Kategorien in Magento 2 mithilfe der Abhängigkeitsinjektion.
Um die Kategoriedaten abzurufen, müssen wir möglicherweise das Objekt
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory
und die\Magento\Catalog\Helper\Category
Klassen in den Konstruktor der Blockklasse unseres Moduls einfügen und über die Ansichtsdatei (.phtml) darauf zugreifen.Jetzt können wir die Funktionen in unserer Ansichtsdatei (.phtml) wie folgt verwenden.
Methode 2 - Verwenden des Objektmanagers
Hier ist der Code, um die Liste aller Kategorien in Magento 2 mit dem Objektmanager abzurufen.
quelle