Você recebe esta
Exception porque este é o comportamento esperado. Zend usa PDO
para obter seu Zend\Db\ResultSet\Resultset que é retornado por Zend\Db\TableGateway\TableGateway . Os conjuntos de resultados PDO usam um cursor somente para frente por padrão, o que significa que você só pode percorrer o conjunto uma vez. Para obter mais informações sobre cursores, consulte Wikipedia e isto artigo.
Como o
Zend\Db\ResultSet\Resultset implementa o PHP Iterator
você pode extrair uma matriz do conjunto usando o Zend\Db\ResultSet\Resultset:toArray() método ou usando o iterator_to_array() função. Tenha cuidado ao usar esta função em conjuntos de dados potencialmente grandes! Uma das melhores coisas sobre os cursores é justamente que eles evitam trazer tudo de uma vez, caso o conjunto de dados seja muito grande, então há momentos em que você não vai querer colocar tudo em um array de uma só vez.