php - magento 2如何在产品详细信息选项卡中获取产品对象
问题描述
谁能指导我如何在详细信息选项卡上加载或获取产品对象
https://prnt.sc/t1dpay
我想通过从供应商/magento/module-catalog 加载产品对象来在详细信息页面上显示数据/view/frontend/templates/product/view/details.phtml
提前致谢
解决方案
在 Magento 中有Magento\Framework\Registry
一个包含(除其他外)“当前产品”的类,如果产品详细信息页面将是页面上显示的产品。
Magento\Framework\Registry
已弃用,但我还没有找到一个好的选择。因为它在大多数情况下都被弃用了,所以我创建一个只做一件事的类,从注册表中获取所需的值。它是直接使用不推荐使用的类本身或“重写它”之间的中间立场,它封装了不推荐使用的类,并且可以在将来必要时非常容易地换出(整个类或具体的实现get()
)。
use Magento\Framework\Registry;
class MyCurrentProduct {
protected $registry;
public function get(): ProductInterface {
return $registry->get('current_product');
}
}
我在示例中遗漏了一些内容,因为我不喜欢发布可复制粘贴的答案。
推荐阅读
- oauth-2.0 - 在 Office365 上获取对 EWS 的访问令牌时范围无效
- django - django rest框架默认字段验证的问题
- wpf - WPF KeyBinding 禁用并让键盘快捷键冒泡
- javascript - Owl Carousel 显示为垂直而不是水平,并且缺少 owl-item
- django - django 编程错误:列不存在
- javascript - Javascript对象数组到字符串
- regex - 使用正则表达式在 sublime 中格式化文本
- mysql - 用mysql在Express中定义一个表
- r - R for循环与字符列表
- javascript - Javascript在“内部”插入一个对象(每个索引都有对象)一个对象数组