Zend Framework 2中的ResultSet不能与toArray()一起使用

时间:2015-04-21 15:39:50

标签: php arrays zend-framework2

我认为我可以在Zend结果集上使用toArray(),但我发现使用toArray()失败并显示以下消息:

  

作为此DataSource的一部分的行,类型对象无法转换为数组

我认为可行的是

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

但是上述错误消息失败了。

这是Collection,一个小类

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的变量

提前致谢,

2 个答案:

答案 0 :(得分:0)

您应该可以使用$result->getArrayCopy() 如果它不起作用你可以尝试添加到收集这个功能

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

答案 1 :(得分:0)

你必须遍历记录,因为它不会一次性获取所有记录。如下所示:

Order ID

或者尝试:

Orderline ID