[英]Magento call a .phtml file in template with product collection
我可以將.phtml文件調用到我的.phtml模板,就像list.phtml一樣。
<?php
echo $this->getLayout()->createBlock('core/template')->setTemplate('goodtest/test.phtml')->toHtml();
?>
但在test.phtml中,我無法調用$ _product值。
例如:
<?php
$_productCollection=$this->getLoadedProductCollection();
foreach ($_productCollection as $_product):
?>
作品
<?php echo $_product->getName() ?>
不起作用:
<?php
echo $this->getLayout()->createBlock('core/template')->setTemplate('goodtest/test.phtml')->toHtml();
?>
在文件中:test.html: <?php echo $_product->getName() ?>
。
我是否必須在每個包含的文件中再次加載產品中的完整集合,如何才能在test.phtml中獲得$ _product值最有效的方法?
有兩種選擇:
您可以在foreach循環中每次使用帶有id的Mage::getModel('catalog/product')->load(<product_id>)
。
使用下面
echo $this->getLayout()->createBlock('catalog/product_list')->setTemplate('goodtest/test.phtml')->toHtml();
代替
echo $this->getLayout()->createBlock('core/template')->setTemplate('goodtest/test.phtml')->toHtml();
您可以通過控制器分配模板,如@example
$this->loadLayout();
$listBlock = $this->getLayout()->createBlock('catalog/product_list')
->setTemplate('catalog/product/list.phtml')
->setCollection($collection);
$this->getLayout()->getBlock('content')->append($listBlock);
$this->renderLayout();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.