Skip to content

"MongoDB\Driver\Cursor::getId() expects exactly 0 arguments, 1 given" with MongoDB driver 2.1.0 #388

@andrevabo

Description

@andrevabo

The $asInt64 parameter from Cursor::getId() has been removed in mongodb ext. 2.0.

Item Version
mongodb driver 2.1.0
PHP 8.2
yii2-mongodb 3.0.3
ArgumentCountError: MongoDB\Driver\Cursor::getId() expects exactly 0 arguments, 1 given in /home/user/dev/vendor/yiisoft/yii2-mongodb/src/Query.php:215
Stack trace:
#0 /home/user/dev/vendor/yiisoft/yii2-mongodb/src/Query.php(215): MongoDB\Driver\Cursor->getId(true)
#1 /home/user/dev/vendor/yiisoft/yii2-mongodb/src/Query.php(362): yii\mongodb\Query->fetchRows(Object(MongoDB\Driver\Cursor), false)
#2 /home/user/dev/vendor/yiisoft/yii2-mongodb/src/ActiveQuery.php(149): yii\mongodb\Query->one(NULL)
#3 /home/user/dev/vendor/yiisoft/yii2/db/BaseActiveRecord.php(110): yii\mongodb\ActiveQuery->one()
#4 /home/user/dev/backend/models/Admin.php(98): yii\db\BaseActiveRecord::findOne(Array)
#5 /home/user/dev/vendor/yiisoft/yii2/web/User.php(699): backend\models\Admin::findIdentity('***************...')
#6 /home/user/dev/vendor/yiisoft/yii2/web/User.php(199): yii\web\User->renewAuthStatus()
#7 /home/user/dev/vendor/yiisoft/yii2/web/User.php(367): yii\web\User->getIdentity()
#8 /home/user/dev/vendor/yiisoft/yii2/filters/AccessRule.php(242): yii\web\User->getIsGuest()
#9 /home/user/dev/vendor/yiisoft/yii2/filters/AccessRule.php(174): yii\filters\AccessRule->matchRole(Object(yii\web\User))
#10 /home/user/dev/vendor/yiisoft/yii2/filters/AccessControl.php(123): yii\filters\AccessRule->allows(Object(yii\base\InlineAction), Object(yii\web\User), Object(yii\web\Request))
#11 /home/user/dev/vendor/yiisoft/yii2/base/ActionFilter.php(77): yii\filters\AccessControl->beforeAction(Object(yii\base\InlineAction))
#12 [internal function]: yii\base\ActionFilter->beforeFilter(Object(yii\base\ActionEvent))
#13 /home/user/dev/vendor/yiisoft/yii2/base/Component.php(648): call_user_func(Array, Object(yii\base\ActionEvent))
#14 /home/user/dev/vendor/yiisoft/yii2/base/Controller.php(303): yii\base\Component->trigger('beforeAction', Object(yii\base\ActionEvent))
#15 /home/user/dev/vendor/yiisoft/yii2/web/Controller.php(219): yii\base\Controller->beforeAction(Object(yii\base\InlineAction))
#16 /home/user/dev/vendor/yiisoft/yii2/base/Controller.php(182): yii\web\Controller->beforeAction(Object(yii\base\InlineAction))
#17 /home/user/dev/vendor/yiisoft/yii2/base/Module.php(555): yii\base\Controller->runAction('report', Array)
#18 /home/user/dev/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('order/report', Array)
#19 /home/user/dev/vendor/yiisoft/yii2/base/Application.php(384): yii\web\Application->handleRequest(Object(yii\web\Request))
#20 /home/user/dev/backend/web/index.php(27): yii\base\Application->run()
#21 {main}

Removing the parameter from these calls seems to have fixed the issue, but I think it will probably break BC.

$token = 'fetch cursor id = ' . $cursor->getId(true);

return $this->getInnerIterator()->getId(true);

$token = 'fetch cursor id = ' . $cursor->getId(true);

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions