magento 数组转object How to convert an array to a collection object in magento?

Scenario

Suppose say we have an array of data fetched from database.
And we want to merge it with Magento collection object or want to provide the data as collection object to the view(template) file.


Solution

<?php
$resource       = Mage::getModel('core/resource');
$connection     = $resource->getConnection('core_read');
$sql            = "SELECT * FROM custom_table WHERE some_field = ?";
$rows           = $connection->fetchAll($sql, array($someFieldValue));//this row will return an array
 
$collection = new Varien_Db_Collection();
foreach($rows as $row){
    $rowObj = new Varien_Object();
    $rowObj->setData($row);
    $collection->addItem($rowObj);
}
 
//now you can get the data using collection way
foreach($collection as $_data){
    print_r($_data->getData());
}
 

Notes:
In order to create a collection object


1> Create an instance of Varien_Db_Collection

$collection = new Varien_Db_Collection();
 

 

2> Create an instance of Varien_Object and set the array of data

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

3> Finally add the Varien_Object to Collection instance

$collection->addItem($rowObj);
 

Now you can play with the magic getters and setters of collection class.

In order to have depth knowledge on Magento Collection you can refer to the Alan Storm’s article:
Varien Data Collections

 

 

来源: http://www.blog.magepsycho.com/how-to-convert-an-array-to-a-collection-object-in-magento/

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值