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我可以迭代多次通過結果。
任何人都可以看到錯誤嗎?