可能重复:
How to get products from a particular category in magento ecommerce
我想构建一个模板(.phtml文件),显示Magento 1.7的产品网格(名称,描述价格,带链接的小图片),类似于默认的“新产品”块。这是我到目前为止所拥有的......
<?php
$category=Mage::getModel('catalog/category')->load(4);
$category=$category->getProductCollection();
foreach($category->getAllIds() as $id)
{
$product=Mage::getModel('catalog/product')->load($id);
echo $product->getName()."<br/>";
echo $product->getUrl()."<br/>";
echo $product->getImageUrl()."<br/>";
echo $product->getImageDescription()."<br/><br/>";
}
答案 0 :(得分:0)
你的代码中有一些错误,让我强调一下:
$category=$category->getProductCollection();
- 这是一种非常糟糕的做法。您将产品集合分配给以前属于该类别的变量。在这样的代码中很容易迷失方向。请记住为变量使用有意义的命名约定。这应该是$productCollection=$category->getProductCollection();
不是循环你已经拥有的集合,而是获取id数组,并循环遍历它们,在每个循环中加载对象。这将导致内存泄漏和代码执行的大量时间。 foreach
语句应如下所示:foreach ($productCollection as $product)
。
您实际上并未在此处提出问题。您已经说过要制作网格并发布代码,但问题出在哪里?
如果您想创建产品网格,请查看在Magento核心目录模块中的工作方式:阻止Mage_Catalog_Block_Product_List
和模板目录/ product / list.phtml