我希望能够将数据传递给getChildHtml()调用。原因是,该块的输出取决于产品类型。所以我想将产品传递给getChildHtml,以便它可以决定输出。
我在里面做这个template/checkout/cart/item/default.phtml
。
理想情况下,呼叫应如下所示:
echo $this->getChildHtml('child_block_name', $_item);
然后,我的模块可以从项目中获取产品类型并显示正确的输出。
由于绝对不可能将数据传递给getChildHtml
-无需重写核心块又如何实现这种类型的行为
我目前拥有的两种解决方案如下(都不很有吸引力):
1-创建一个帮助程序,并通过该帮助程序访问html输出,而不是让块和模板将其呈现给ala $this->helper('my_module')->getItemHtml($_item);
2-在模板内访问子块并在其上设置数据:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
我认为就Magento架构而言,数字2是两个弊端中的较小者,但在模板内部看时很难看。