2013-05-14 25 views
1

获取数据我有一个其中有一行数据的集合。如果我下面,从Magento的收藏

$collection->getData(); 

它给我一个数组像下面,

array(1) { 
    [0] => array(3) { 
     ["id"] => string(1) "1" 
     ["field1"] => string(10) "Field 1 Data" 
     ["field2"] => string(10) "Field 2 Data" 
    } 
    } 

但是当我做$collection->getField1()它未定义的方法说。据我所知,PHP魔术吸气器应该像这样工作。不是吗?

任何想法如何让没有foreach构造此值。

回答

8

神奇的getter和setter方法只适用于从Varien_Object继承Magento的对象。在模型和块的实践中。集合既不是模型也不是模块。一个集合是一个包含0到N个模型对象的能够对象。

集合的getData方法将返回集合中的每个模型的原始PHP数组。

#File: lib/Varien/Data/Collection/Db.php 
public function getData() 
{ 
    if ($this->_data === null) { 
     $this->_renderFilters() 
      ->_renderOrders() 
      ->_renderLimit(); 
     $this->_data = $this->_fetchAll($this->_select); 
     $this->_afterLoadData(); 
    } 
    return $this->_data; 
} 

你可能想要做的是从集合中获取第一个模型,然后获取其数据。

$data = $collection->getFirstItem()->getData(); 
$field1 = $collection->getFirstItem()->getField1(); 
+0

$ data = $ collection-> getFirstItem() - > getData();是我一直在寻找的。谢谢 – 2016-01-14 07:05:39