簡體   English   中英

Magento使用產品集合在模板中調用.phtml文件

[英]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值最有效的方法?

有兩種選擇:

  1. 您可以在foreach循環中每次使用帶有id的Mage::getModel('catalog/product')->load(<product_id>)

  2. 使用下面

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM