Bạn nhận được Exception
này bởi vì đây là hành vi được mong đợi. Zend sử dụng PDO
để lấy Zend\Db\ResultSet\Resultset
của nó được trả về bởi Zend\Db\TableGateway\TableGateway
. Tập hợp kết quả PDO sử dụng con trỏ chỉ chuyển tiếp theo mặc định, nghĩa là bạn chỉ có thể lặp lại tập hợp một lần.
Để biết thêm thông tin về con trỏ, hãy kiểm tra Wikipedia và cái này bài báo.
Là Zend\Db\ResultSet\Resultset
triển khai PHP Iterator
bạn có thể trích xuất một mảng của tập hợp bằng Zend\Db\ResultSet\Resultset:toArray()
hoặc sử dụng iterator_to_array()
hàm số. Hãy cẩn thận khi sử dụng chức năng này trên các tập dữ liệu lớn tiềm năng! Một trong những điều tốt nhất về con trỏ chính là chúng tránh đưa mọi thứ vào cùng một lúc, trong trường hợp tập dữ liệu quá lớn, vì vậy đôi khi bạn sẽ không muốn đặt tất cả vào một mảng cùng một lúc.