2013-05-14 55 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