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.