Du får detta Exception
eftersom detta är förväntat beteende. Zend använder PDO
för att få dess Zend\Db\ResultSet\Resultset
som returneras av Zend\Db\TableGateway\TableGateway
. PDO-resultatuppsättningar använder som standard en framåtriktad markör, vilket innebär att du bara kan gå igenom uppsättningen en gång.
För mer information om markörer kolla Wikipedia och det här artikel.
Som Zend\Db\ResultSet\Resultset
implementerar PHP Iterator
du kan extrahera en array av uppsättningen med hjälp av Zend\Db\ResultSet\Resultset:toArray()
metod eller med iterator_to_array()
fungera. Var dock försiktig med att använda den här funktionen på potentiellt stora datamängder! En av de bästa sakerna med markörer är just att de undviker att få in allt på en gång, ifall datamängden är för stor, så det finns tillfällen då du inte vill lägga allt i en array på en gång.