系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》
本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。
在Magento 2中获取当前产品的步骤:
第 1 步:在我们的自定义扩展上创建一个块文件
在 以下路径中添加Blockname.php
app\code\Vendor\Extension\Block\Blockname.php
现在添加以下代码
<?php namespace Vendor\Extension\Block; use Magento\Framework\View\Element\Template; class Blockname extends Template { protected $_registry; public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, ) { $this->_registry = $registry; parent::__construct($context); } public function getCurrentProduct() { return $this->_registry->registry('current_product'); } }
第2步: 现在,我们将在模板phtml文件中获取当前产品
// print current product data if ($currentProduct = $block->getCurrentProduct()) { echo $currentProduct->getName() . '<br />'; echo $currentProduct->getSku() . '<br />'; echo $currentProduct->getFinalPrice() . '<br />'; echo $currentProduct->getProductUrl() . '<br />'; print_r ($currentProduct->getCategoryIds()) . '<br />'; }
结语:
上面描述是在Magento 2中获取当前产品的最简单方法。