Yii2 mongodb错误:对象配置必须是一个包含“class”元素的数组

6
当我尝试登录或注册时,它不起作用。如果我使用错误的凭据进行登录,则可以成功登录。但是如果我使用正确的凭据,则会出现错误:
“Object configuration must be an array containing a "class" element.”
出错行:
 static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);

和相关的行

$models = $this->createModels($rows);

我的配置如下

main.php

return [
  'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
  'components' => [
    'cache' => [
        'class' => 'yii\caching\FileCache',
    ],
  ],
];

main-local.php

return [
    'components' => [
        'mongodb' => [
            'class' => '\yii\mongodb\Connection',
            'dsn' => 'mongodb://mts:123456@localhost:27017/mangodb',
        ],
        'user' => [
            'identityClass' => 'common\models\User', // This is your class with IdentityInterface
            'enableAutoLogin' => true,
        ],
    ],
];

我按照这个教程操作,但是出现了上述错误。 - Gauravbhai Daxini
1
@gauravdaxini 配置看起来没问题,还需添加相关的模型和控制器。 - Insane Skull
enableAutoLogin 的值从 true 改为 false - vishuB
请问您能否添加完整的堆栈跟踪信息? - Muhammad Omer Aslam
这是一个好问题,我也一直遇到这个问题。你使用的是Linux还是Windows?你使用的是普通的LAMP还是XAMPP? - Pablo Palacios
显示剩余2条评论
1个回答

3

请确保你正在使用的 ActiveRecord 对象(即 static::findOne(...) 中的对象)是 yii\mongodb\ActiveRecord 的实例,而不是 yii\db\ActiveRecord,因为后者使用了标准的 db 组件,我假设你没有配置好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接