2012-09-19 59 views
4

我需要得到的這是在比較清單產品清單列表Magento的 - 獲得這些都是比較清單產品

我在PHTML此代碼,它什麼都不做>

$collection = Mage::getModel('catalog/product_compare_list')->getCollection()->load(); 
       foreach($collection as $product) { 
        echo $product->getId().'<Br />'; 
       } 

任何建議問題在哪裏?感謝

+0

刪除 - >負載()。 – Guerra

+1

嘗試過,它沒有返回任何東西 – macho

+1

沒有'load'集合仍然在下一行('foreach'構造)中加載,所以雖然'load'在這裏超出了,刪除它根本不會改變程序邏輯 –

回答

1
$collection = Mage::getModel('catalog/product_compare_list')->getCollection(); 
      foreach($collection as $product) { 
       echo $product->getId().'<Br />'; 
      } 
+0

hm it沒有打印任何東西,我有這個代碼目錄/模板/產品/ list.phtml – macho

+0

@危害你檢查了'Mage_Catalog_Model_Product_Compare_List'嗎?我沒有看到任何'功能getCollection()' – ivantedja

1

使用此代碼:

$collection = Mage::getModel('catalog/product_compare_list')->getItemCollection(); 
     foreach($collection as $product) { 
      echo $product->getId().'<Br />'; 
     } 

這應該工作。

+0

無法正常工作,如果我使用getItemCollection,整個list.phtml消失 – macho

+0

這是工作,也許你doint別的錯誤。我在這裏測試並且這個方法返回所有Item集合,評論foreach statment和print echo count($ collection);並查看mutch註冊如何帶來 – Guerra

4

嘗試使用比較列表塊(Mage_Catalog_Block_Product_Compare_List)的getItems()方法:

$collection = $this->getLayout()->createBlock('catalog/product_compare_list')->getItems(); 
foreach($collection as $product) { 
    echo $product->getId().'<Br />'; 
} 
+0

你和Guerra對'Mage :: getResourceModel('catalog/product_compare_item_collection')'的回答。有趣的是看到哪個更好:) – ivantedja

+0

@ivantedja your're right :)但塊方法已經爲輸出做好了準備 - 所有的過濾器都被應用了。雖然資源模型中的原始集合將返回所有比較項目的集合,但不完全是您需要的。雖然目前還不清楚爲什麼它不向作者返回任何東西。 –

+0

我不明白它是因爲我從來沒有使用過比較列表,也許它有大量的數據並且觸發內存用於未過濾的集合? – ivantedja