2010-10-07 100 views
3

所以我們試圖通過一定的標準集合加載的產品,我們沒有足夠的SKU或ID,所以當我們做了以下Magento的:通過集合裝載產品之間的差異比產品型號

$prodModel->getCollection() 
     ->addAttributeToFilter('visibility', $visibility) 
     ->addAttributeToSelect('*') 
     ->addCategoryFilter($cat) 
     ->addAttributeToFilter('attribute_1', $sattribute_1) 
     ->addAttributeToFilter('attribute_2', $attribute_2) 
     ->addAttributeToFilter('type_id', 'configurable') 
     ->load() 
     ->getFirstItem() 

當我們這樣做時,我們得到了我們想要的產品,但由於某種原因它沒有所有的屬性,即使我們爲所有屬性指定了「*」。具體來說,我們沒有得到的是媒體庫屬性。我們最終做的是說getFirstItem() - > getId()然後加載產品,它的工作發現。

我只是不明白乳清加載目錄產品模型的產品會有更多的屬性。

+2

我不知道你的問題的答案,但我可以證實Magento一直這樣表現。有必要在單個產品上執行'load()'。我從來沒有見過''*''屬性選擇器,你在法師代碼庫中看到過,還是在嘗試? – 2010-10-07 21:14:02

+0

我們一直都在使用它,我在加載集合時看到過很多人的例子。我甚至可以嘗試加載媒體庫屬性,但它仍然不會,我假設我不得不進行加入?但這就是爲什麼我想知道通過集合獲得產品並加載它的區別 – 2010-10-08 01:52:48

回答

1

我明白你其實問到如何獲得所有的屬性,但我注意到你也特別提到媒體庫屬性。 碰巧有一個獲取產品圖片最終到達網址的捷徑。

(string)Mage::helper('catalog/image')->init($product, 'media_gallery'); 

投射到字符串調用__toString它執行的聰明。初始化後,您也可以立即應用調整大小,旋轉,水印等。