Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Magento中将数组转换为集合_Magento - Fatal编程技术网

在Magento中将数组转换为集合

在Magento中将数组转换为集合,magento,Magento,我有一个数组对象,它是来自DB的magento fetchall的输出,我希望将其转换为Collections类的对象,以便实现分页并使用此集合与其他表联接。你能帮我吗?已经被困很长时间了 Magento没有内置的conversor,但是您可以使用集合编写查询,或者基于数组中的所有ID加载集合。此外,可以使用addItem方法填充集合。如果您有一个ID数组$product\u id,则可以使用: $collection = Mage::getModel('catalog/product')-&g

我有一个数组对象,它是来自DB的magento fetchall的输出,我希望将其转换为Collections类的对象,以便实现分页并使用此集合与其他表联接。你能帮我吗?已经被困很长时间了

Magento没有内置的conversor,但是您可以使用集合编写查询,或者基于数组中的所有ID加载集合。

此外,可以使用
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_数据收集类。。