Я пытаюсь получить ключ URL любой данной категории с идентификатором. У меня есть это;
$categoryId = 3;
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$object_manager = $_objectManager->create('Magento\Catalog\Model\Category')->load($categoryId);
print_r($object_manager->getData());
И это работает (в print_r есть ключ URL, который мне нужен), но категория # 3 - это категория верхнего уровня. Всякий раз, когда я пробую какую-либо подкатегорию (скажем, ID 5), я получаю пустой массив. Я просто потерян для слов, не могу понять это.
В Magento 1.x я делал это: Mage::getModel('catalog/category')->load($catID)->getUrl()
и это сработало.
TL; DR: Этот код работает, измените ID на (правильную) категорию ID и изменения getData()
к getUrl()
для полной категории URL, или getName()
для названия категории.
источник
Всегда старайтесь использовать репозиторий. Вам нужно ввести следующим образом:
Для категории URL
источник
Вы можете попробовать ниже код.
Перед тем, как использовать идентификатор категории, вы должны подтвердить, что идентификатор категории существует в admin или он возвратит пустой массив.
Дайте знать, если у вас появятся вопросы.
источник
Я обнаружил, что когда мне нужны URL-адреса категорий из разных доменов (для каждого представления магазина), мне приходилось создавать новый объект Url для каждого представления магазина.
источник
Это отлично работает на моем пользовательском блоке (используя репозиторий категорий и DI):
Наконец, в файле шаблона я просто использую:
источник
@andrea Пожалуйста, обновите метод getCategory. Либо это работает хорошо.
источник