J'essaie d'obtenir la clé URL d'une catégorie donnée avec l'ID. J'ai ceci;
$categoryId = 3;
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$object_manager = $_objectManager->create('Magento\Catalog\Model\Category')->load($categoryId);
print_r($object_manager->getData());
Et cela fonctionne (dans print_r, il y a la clé URL dont j'ai besoin), mais la catégorie # 3 est la catégorie de niveau supérieur. Chaque fois que j'essaie une sous-catégorie (disons ID 5), je reçois un tableau vide. Je suis juste perdu pour les mots, je ne peux pas le comprendre.
Dans Magento 1.x, je faisais cela: Mage::getModel('catalog/category')->load($catID)->getUrl()
et cela a fonctionné.
TL; DR: ce code fonctionne, remplacez l'ID par un ID de catégorie (correct) et remplacez getData()
par getUrl()
pour l'URL complète de la catégorie ou getName()
pour le nom de la catégorie.
la source
Essayez toujours d'utiliser le référentiel. Vous devez injecter de la manière suivante:
Pour l'URL de catégorie
la source
Vous pouvez essayer ci-dessous le code.
Avant d'utiliser un identifiant de catégorie, vous devez confirmer qu'il existe un identifiant de catégorie dans admin ou il renverra un tableau vide.
Faites moi savoir si vous avez des questions.
la source
J'ai constaté que lorsque j'avais besoin d'URL de catégorie de différents domaines (par vue de magasin), je devais créer un nouvel objet URL par vue de magasin.
la source
Cela fonctionne très bien sur mon bloc personnalisé (en utilisant le référentiel de catégories et DI):
Enfin, dans un fichier modèle, j'utilise simplement:
la source
@andrea Veuillez mettre à jour la méthode getCategory. Soit ça marche bien.
la source