Próbuję uzyskać klucz adresu URL dowolnej kategorii o identyfikatorze. Mam to;
$categoryId = 3;
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$object_manager = $_objectManager->create('Magento\Catalog\Model\Category')->load($categoryId);
print_r($object_manager->getData());
I to działa (w print_r jest klucz URL, którego potrzebuję), ale kategoria 3 to kategoria najwyższego poziomu. Ilekroć próbuję podkategorii (powiedzmy ID 5), otrzymuję pustą tablicę. Po prostu brakuje mi słów, nie mogę tego rozgryźć.
W Magento 1.x robiłem to: Mage::getModel('catalog/category')->load($catID)->getUrl()
i to działało.
TL; DR: Ten kod działa, zmień identyfikator do (poprawnie) ID kategorii i zmian getData()
do getUrl()
kompletnego kategorii URL, lub getName()
do nazwy kategorii.
magento2
url
magento-2.1
category-attribute
url-key
Alex Timmer
źródło
źródło
Zawsze staraj się korzystać z repozytorium. Musisz wstrzyknąć w następujący sposób:
Dla adresu URL kategorii
źródło
Możesz spróbować poniżej kodu.
Zanim użyjesz identyfikatora kategorii, potwierdź, że identyfikator kategorii istnieje w adminie lub zwróci pustą tablicę.
Daj mi znać, jeśli masz jakieś pytania.
źródło
Odkryłem, że kiedy potrzebuję adresów URL kategorii z różnych domen (na widok sklepu), musiałem utworzyć nowy obiekt Url na widok sklepu.
źródło
Działa to dobrze w moim niestandardowym bloku (przy użyciu repozytorium kategorii i DI):
Wreszcie w pliku szablonu po prostu używam:
źródło
@ andrea Zaktualizuj metodę getCategory. Albo działa dobrze.
źródło