Php 如何在没有寄存器和对象管理器的情况下在Magento 2中获得块中的当前产品?

Php 如何在没有寄存器和对象管理器的情况下在Magento 2中获得块中的当前产品?,php,magento2,magento-2.3,Php,Magento2,Magento 2.3,如何避免使用无润滑注册表和禁止对象管理器获取当前产品?我现在有这个代码: $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $product = $objectManager->get('Magento\Framework\Registry')->registry('current_product'); $product = $objectMana

如何避免使用无润滑注册表和禁止对象管理器获取当前产品?我现在有这个代码:

        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');
        $product = $objectManager->create('Name\ModuleName\Model\Folder\Product')->load($product->getId());

如果您还没有,您可能想试试Burlaco Vasilii的“不推荐使用的注册表类的替代方案–Magento 2.3”,可以在这里找到:


这似乎是因为在注册表中保存数据被证明是一种彩票。因此,如果开发人员无法使用注册表获取数据,那么答案基本上是“来自会话”。

他使用的示例是“在产品视图页面上添加一个返回到[category name]的链接”;在产品名称下面