Новый драйвер php mongodb удалил метод hasNext.
http://php.net/manual/en/class.mongodb-driver-cursor.php
MongoDB\Driver\Cursor implements Traversable {
/* Methods */
final private __construct ( void )
final public MongoDB\Driver\CursorId getId ( void )
final public MongoDB\Driver\Server getServer ( void )
final public bool isDead ( void )
final public void setTypeMap ( array $typemap )
final public array toArray ( void )
}
Мы пытаемся обновить mongodb до последней версии 3.2 и драйвера mongodb php 1.1. Мы использовали hasNext в некоторых местах кода, которые нам нужно реорганизовать. Я попытался использовать этот https://secure.php.net/manual/en/class.mongodb-driver-cursor.php#118824
class MongodbCursor
{
public static function hasNext(\MongoDB\Driver\Cursor $cursor)
{
$it = new \IteratorIterator($cursor);
$it->rewind();
return $it->valid();
}
}
e.g.
$cursor = some mongo query to get cursor
if (!MongodbCursor::hasNext($cursor)){
// since there is no data in above cursor, another query to get new cursor
$cursor =
}
foreach ($cursor as $item) {
}
Это дает ошибку ниже,
Cursors cannot yield multiple iterators