Вызов неопределенного метода MongoDB Driver Cursor::current()

#php #mongodb

#php #mongodb

Вопрос:

Я получаю в PHP эту ошибку:

 Fatal error: Uncaught Error: Call to undefined method MongoDBDriverCursor::current()`.
 

Что, по-видимому, противоречит документации.

Я могу показать свой код, но, ну, я вызываю метод current() для курсора MongoDB.

Комментарии:

1. Какая у вас версия mongodb (на всякий случай)?

2. моя версия 4.2.9

Ответ №1:

Эта функциональность была добавлена всего несколько недель назад:

MongoDB Driver Cursor исторически реализовывал только Traversable и предоставлял внутренний итератор (не для пользовательского класса итератора). PHP 8 требовал, чтобы мы реализовали либо Iterator, либо IteratorAggregate напрямую (PHPC-1690), хотя PHP также предоставляет внутренний итератор для расширений, чтобы упростить это.

Тем не менее, мы должны рассмотреть возможность предоставления надлежащей реализации итератора для курсора, чтобы исключить нашу зависимость от внутреннего класса итератора для PHP 8 и представить согласованный API для всех поддерживаемых версий.

https://jira.mongodb.org/browse/PHPC-1691 (Принято 4 ноября 2020 года)

Убедитесь, что все имеющиеся у вас пакеты обновлены, или при необходимости установите из исходного кода.