magento如何把数组转换成collection对象

在使用magento后台的grid列表时,都是用的collection方式。

但是对于一些特殊的查询,collection写的太麻烦 甚至无法实现,不得不直接写sql,得到数组array后 再通过某种方法来转换成collection对象。

以下就是某种方法:

主要利用Varien_Data_Collection

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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_Data_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());
}

 

坚持原创技术分享,您的支持将鼓励我继续创作!