【问题标题】:How to get current category in Magento2 without using Registry or ObjectManager on PDP?如何在不使用 PDP 上的 Registry 或 ObjectManager 的情况下获取 Magento2 中的当前类别?
【发布时间】:2019-09-05 07:13:18
【问题描述】:

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

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

由于不推荐使用 Registry 并且使用 ObjectManager 不是好的做法。

【问题讨论】:

    标签: magento2


    【解决方案1】:

    转到您主题的 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(); ?>
    

    【讨论】:

      【解决方案2】:

      获取当前类别:

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

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

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

      【讨论】:

        【解决方案3】:

        你应该使用

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

        然后用实例化

        \Magento\Catalog\Api\CategoryRepositoryInterface使用

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

        【讨论】:

          猜你喜欢
          • 2016-04-25
          • 2014-02-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-05
          相关资源
          最近更新 更多