2

是否可以将变量从父模板传递给子模板。例如,如果我想将一些重复的 HTML 放在一个单独的模板中,该模板包含在其父模板的 foreach 循环中

<?php

foreach ($items as $item)
{
    echo $this->getChildHtml('item_info');
}

?>

我希望能够访问 item_info 模板中的 $item 变量。

谢谢

4

2 回答 2

4

我已将我的产品列表模板拆分为一个单独的文件,以便我可以在多个地方使用它。

在父模板中,我执行以下操作:

<?PHP
$this->getChild('product_list_list')->setData('products', $_productCollection);
echo $this->getChildHtml('product_list_list'); 
?>

在子模板中我可以这样做:

<?php foreach ($this->products as $_product): ?>
  // display products
<?php endforeach; ?>

所以你应该能够做到:

$this->getChild('item_info')->setData('item', $item);

然后在 item_info 中,以

$this->item

希望这对你有用。在 magento 1.3 上为我工作,但它似乎相当基本,因此可能对所有版本都很常见。

于 2009-07-11T12:20:00.420 回答
1

我知道这不是一个新帖子,但这里有一点完成:

您应该调用 getChildHtml 并将缓存属性设置为 false,例如:

$this->getChildHtml('item_info', false);

然后,它将完美地工作。

谢谢本伦利

于 2009-09-09T16:51:50.487 回答