2011-08-02 47 views
2

我有一個數組對象,它是數據庫中的magento fetchall的輸出,我希望將其轉換爲Collections類的對象,以便我可以實現分頁並使用此集合加入其他表格。你能幫我嗎?現在已經很久了!將數組轉換爲Magento中的集合

回答

4

Magento並沒有內置的轉換器,但是您可以使用Collections來編寫查詢,或者根據數組中的所有id加載Collection。

+0

距離最近的答案! – Baaju

+0

在Magento Enterprise 1.12中,有一種方法可以將數組轉換爲集合。請參閱:Mage_Eav_Model_Entity_Collection_Abstract :: importFromArray –

3

此外,填充集合可以使用addItem方法完成。

+0

你能詳細說明嗎?所以我有一個數組,我可以實例化一個集合,並通過使用集合對象的additem方法將數組中的每個項添加到集合中? – Baaju

+2

是的,你(可能)必須遍歷你的數組,然後在每個項目上調用'$ collection-> addItem($ item)'來添加到集合中。 – Nick

+0

@Nick:哪個類對象是這個'$ collection'? –

-1

如果您有IDS $product_ids的數組,你可以使用:

$collection = Mage::getModel('catalog/product')->getCollection() 
     ->addIdFilter($product_ids); 
9

爲了一個數組轉換爲一個集合對象:
1>創建Varien_Db_Collection

的實例
$collection = new Varien_Db_Collection(); 

2>創建Varien_Object的一個實例並設置陣列數據

$rowObj = new Varien_Object(); 
$rowObj->setData($row); 

3>最後添加Varien_Object到Collection實例

$collection->addItem($rowObj); 

4>現在$集合是一個集合對象。

+1

in [tag:magento] -1.8沒有類'Varien_Db_Collection'。我得到這個錯誤'致命錯誤:類'Varien_Db_Collection'找不到' –

+3

嘗試使用'Varien_Data_Collection_Db'而不是'Varien_Db_Collection'。 – aforankur

+0

我收到了'Varien_Data_Collection_Db'的奇怪錯誤,但是'Varien_Data_Collection'正常工作,在這個答案中發佈的代碼 –