Ich versuche, den URL-Schlüssel einer bestimmten Kategorie mit der ID abzurufen. Ich habe das;
$categoryId = 3;
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$object_manager = $_objectManager->create('Magento\Catalog\Model\Category')->load($categoryId);
print_r($object_manager->getData());
Und das funktioniert (in print_r gibt es den URL-Schlüssel, den ich brauche), aber Kategorie 3 ist die Kategorie der obersten Ebene. Immer wenn ich eine Unterkategorie versuche (z. B. ID 5), erhalte ich ein leeres Array. Ich bin nur sprachlos, kann es nicht herausfinden.
In Magento 1.x habe ich das gemacht: Mage::getModel('catalog/category')->load($catID)->getUrl()
und das hat funktioniert.
TL; DR: Dieser Code funktioniert. Ändern Sie die ID in eine (korrekte) Kategorie-ID und ändern Sie sie getData()
in getUrl()
für die vollständige Kategorie-URL oder getName()
für den Kategorienamen.
quelle
Versuchen Sie immer, das Repository zu verwenden. Sie müssen wie folgt injizieren:
Für Kategorie URL
quelle
Sie können den folgenden Code ausprobieren.
Bevor Sie eine Kategorie-ID verwenden, müssen Sie bestätigen, dass die Kategorie-ID in admin vorhanden ist. Andernfalls wird ein leeres Array zurückgegeben.
Lassen Sie mich wissen, wenn Sie Fragen haben.
quelle
Ich stellte fest, dass ich ein neues URL-Objekt pro Geschäftsansicht erstellen musste, wenn ich Kategorie-URLs aus verschiedenen Domänen (pro Geschäftsansicht) benötige.
quelle
Dies funktioniert gut auf meinem benutzerdefinierten Block (unter Verwendung von Kategorie-Repository und DI):
Schließlich verwende ich in einer Vorlagendatei nur:
quelle
@andrea Bitte aktualisieren Sie die getCategory-Methode. Entweder funktioniert es gut.
quelle