0
在我的项目中,我需要一个ResultSet来创建我的模型,具体取决于结果数据。 因此,我扩展了\ Zend \ Db \ ResultSet \ ResultSet并覆盖了current
方法。扩展结果集错误
/**
* @return array|\ArrayObject|null
*/
public function current()
{
$data = $this->dataSource->current();
if ($this->returnType === self::TYPE_ARRAYOBJECT && is_array($data)) {
/** @var $ao ArrayObject */
$ao = $this->getModelClass($data['Type']);
if ($ao instanceof ArrayObject || method_exists($ao, 'exchangeArray')) {
$ao->exchangeArray($data);
}
return $ao;
}
return $data;
}
,并将此作为类的ResultSet我TableGateway:
return new TableGateway('Bookings', $dbAdapter, null, new \MyApp\Db\ResultSet\Entry());
它工作得很好,如果我遍历结果一次。但是如果通过结果迭代两次或更多次,则方法总是返回false。 我已经在ResultSet上调用buffer
方法,但它仍然不起作用。
如果我删除我自己的类,并使用\ Zend \ Db \ ResultSet \ ResultSet我可以迭代多次通过结果。
任何人都可以看到错误吗?