在我的更新XML中,我有:
<reference name="content">
<remove name="product.info" />
<block type="catalog/product_view" template="catalog/product/imageview.phtml">
<action method="setData"><name>variable</name><value>3</value></action>
</block>
</reference>
我创建了imageview.phtml并正确加载。在此模板中,我转储了以下内容:
var_dump($this->getVariable());
我的预期结果是:3
但结果是:NULL
我错过了什么?
答案 0 :(得分:5)
老问题我知道,但今天早上我遇到了同样的问题。希望它可以节省一些时间。
您的块需要一个名称才能通过setData方法接受任何变量。
示例强>:
<block type="catalog/product_view" name="product_image_view" template="catalog/product/imageview.phtml">
<action method="setData"><name>variable</name><value>3</value></action>
</block>
不确定为什么它需要一个名字,因为它似乎没有记录在任何地方。可能值得添加alais="product_image_view"
以避免任何进一步的 Magentoism
答案 1 :(得分:0)
尝试为密钥指定其他名称?
<action method="setData">
<name>my_variable</name>
<value>3</value>
</action>
并称之为
echo $this->getMyVariable();