2015-04-21 49 views
3

我認爲我能在我的Zend的ResultSet使用toArray(),但我發現,使用toArray()失敗消息:的ResultSet Zend框架2不指定者()工作

行作爲一部分這個數據源,具有類型的對象不能轉換到一個數組

我想會的工作是像

return new JsonModel($collections->toArray());

但是,上述錯誤信息失敗。

這裏是收藏,小班

class Collection 
{ 
public $collectionID; 
public $name; 

public function exchangeArray($data) 
{ 
    $this->collectionID = (!empty($data['collectionID'])) ? $data['collectionID'] : null; 
    $this->name = (!empty($data['name'])) ? $data['name'] : null; 
} 

// Add the following method: 
public function getArrayCopy() 
{ 
    return get_object_vars($this); 
} 


} 

如果添加自己的

public function toArray() 
{ 
    return array(get_object_vars($this)); 
} 

我可以強制其做我所期待的東西,但我不知道這是最好的方法。另外,如果我使用與JsonModel聯合輸出的JSON也將包含變量從settings.global.php提前

感謝,

回答

0

您應該能夠使用,$result->getArrayCopy() 如果它不工作,你可以嘗試添加到收藏此功能

public function getArrayCopy() 
{ 
    return get_object_vars($this); 
} 
+0

不幸的是,對我產生相同的錯誤消息。 – user49438

+0

已更新回答:) – Unex

0

您必須遍歷記錄,因爲它不會一次性獲取所有記錄。因此,像:

$m = array(); 

foreach($resultSet as $r) 
    $m[] = (array)$r; 

要不試試:

$resultSet = (array)resultSet;