【发布时间】:2014-02-01 01:26:06
【问题描述】:
我有一个 magento 1.7.0.2 ,带有清漆缓存。我正在尝试创建一个未缓存的块并在产品视图页面上获取当前产品 ID,但是 Mage::registry('current_product')->getId(); 和 $this->getProduct()->getId(); 似乎都不起作用。我的自定义块在 catalog.xml 中如下所示:
<catalog_product_view translate="label">
...
<reference name="content">
...
<block type="catalog/product_view" name="product.info.frz" template="catalog/product/view/frz.phtml">
<action method="setEsiOptions">
<params>
<method>ajax</method>
<access>private</access>
</params>
</action>
</block>
...
</reference>
...
</catalog_product_view>
我在 product/view.phtml 中显示块
<?php echo $this->getChildHtml('product.info.frz'); ?>
一切正常,块没有被缓存。但是,当我尝试获取当前产品 id 时,我得到了PHP message: PHP Fatal error: Call to a member function getId() on a non-object。
据我所知,Mage::registry('current_product')->getId(); 应该适用于目录/导航块。你能指点我正确的方向吗?我做错了什么?
谢谢。
【问题讨论】:
-
将块类型="catalog/navigation" 更改为 "catalog/product_view"