在Magento中将数组转换为集合
我有一个数组对象,它是来自DB的magento fetchall的输出,我希望将其转换为Collections类的对象,以便实现分页并使用此集合与其他表联接。你能帮我吗?已经被困很长时间了 Magento没有内置的conversor,但是您可以使用集合编写查询,或者基于数组中的所有ID加载集合。此外,可以使用在Magento中将数组转换为集合,magento,Magento,我有一个数组对象,它是来自DB的magento fetchall的输出,我希望将其转换为Collections类的对象,以便实现分页并使用此集合与其他表联接。你能帮我吗?已经被困很长时间了 Magento没有内置的conversor,但是您可以使用集合编写查询,或者基于数组中的所有ID加载集合。此外,可以使用addItem方法填充集合。如果您有一个ID数组$product\u id,则可以使用: $collection = Mage::getModel('catalog/product')-&g
addItem
方法填充集合。如果您有一个ID数组$product\u id
,则可以使用:
$collection = Mage::getModel('catalog/product')->getCollection()
->addIdFilter($product_ids);
要将数组转换为集合对象:
1> 创建Varien_Db_集合的实例
$collection = new Varien_Data_Collection();
2> 创建Varien_对象的实例并设置数组数据
$rowObj = new Varien_Object();
$rowObj->setData($row);
3> 最后,将Varien_对象添加到集合实例
$collection->addItem($rowObj);
4> 现在$collection是一个集合对象。您能详细说明一下吗?因此,我有一个数组,我可以实例化一个集合,并使用集合对象的additem方法将数组中的每个项添加到集合中吗?是的,您(可能)必须在数组中循环,然后调用
$collection->additem($item)
在要添加到集合的每个项目上。@尼克:这是哪个类对象?$collection
?在Magento Enterprise 1.12中,有一种方法可以将数组转换为集合。请参阅:Mage\u Eav\u Model\u Entity\u Collection\u Abstract::importFromArrayin-1.8没有类Varien\u Db\u Collection
。我遇到了这个错误致命错误:找不到类“Varien_Db_Collection”
尝试使用“Varien_Data_Collection_Db”而不是“Varien_Db_Collection”。我在Varien_Data_Collection_Db
中遇到了奇怪的错误,但是Varien_Data_Collection
与此回答中发布的代码配合得很好我刚刚使用了上面的代码,而且效果很好。因此,这应该是正确答案,而不是@Rafael Kassner提供的答案。显然,使用Varien_数据收集类。。