如何在不使用PDP上的Registry或ObjectManager的情况下获取Magento2中的当前类别?

时间:2019-09-05 07:13:18

标签: magento2

如何获取magento2中的当前类别?

我想在产品详细信息页面上获得类别名称。

不推荐使用注册表,而使用ObjectManager则不是很好的做法。

3 个答案:

答案 0 :(得分:0)

转到主题的form.phtml文件。如果您的主题中没有form.phtml,请将其从Magento_Catalog模块复制到您的主题。

vendor/magento/module-catalog/view/frontend/templates/product/view/form.phtml

app/design/frontend/{Vendorname}/{Themename}/Magento_Catalog/templates/product/view/form.phtml

粘贴下面的代码

<?php echo $block->getProduct()->getCategory()->getName(); ?>

答案 1 :(得分:0)

获取当前类别:

使用块类:Magento\Catalog\Block\Category\View

使用获取产品:在您的 phtml 中使用 $block->getCurrentCategory() 或使用类并获取块文件。

希望对您有所帮助。编码愉快!!

答案 2 :(得分:0)

你应该使用

$categoryId = (int)$this->getRequest()->getParam('id', false);

然后用实例化

\Magento\Catalog\Api\CategoryRepositoryInterface 使用

$this->categoryRepository->get($categoryId);