MongoDB连接在YII2中不起作用

时间:2016-06-24 13:02:17

标签: php yii2

我是yii2和php的新蜜蜂。我正在使用YII2和mongodb创建一个项目但是给出错误{“response”:“failed”,“status_code”:500,“message”:“\”db \“指的是yii \ mongodb \ Connection组件.yii \ db \ Connection是预期的。“}

我的组件文件是

 return [
    'db' => require (__DIR__ . '/_mongodb.php'),
    'urlManager' => require (__DIR__ . '/_urlRules.php'),
    'request' => require (__DIR__ . '/_request.php'),   
    'log' => require (__DIR__ . '/_log.php'),
    'response' => require (__DIR__ . '/_response.php'),
    'user' => require (__DIR__ . '/_user.php'),
    'cache' => require (__DIR__ . '/_cache.php'),
    'mailer' => require (__DIR__ . '/_mail.php'),
    'languageSelector' => require (__DIR__ . '/_languageSelector.php'),
    'i18n' => require (__DIR__ . '/_i18n.php'),    
    'assetManager' => [
        'class' => 'app\components\asset\AssetManager',
        'resource' => [
            'path' => 'resources' . DIRECTORY_SEPARATOR,
            'tempPath' => 'temp' . DIRECTORY_SEPARATOR,
            'thumbnailPath' => 'thumbs' . DIRECTORY_SEPARATOR
        ]
    ],
    'storageFactory' => [
        'class' => 'app\components\storage\StorageFactory',
        'local' => [
            'class' => 'app\components\storage\FileStorage',
            'connector' => require (__DIR__ . '/_localStorage.php')
        ],
        'network' => [
            'class' => 'app\components\storage\FileStorage',
            'connector' => require (__DIR__ . '/_localStorage.php')
        ]
    ]
]?>

_mongodb.php文件

return [
    'class' => 'yii\mongodb\Connection',
    'dsn' => 'mongodb://localhost:27017/genie'
];

我尝试在Google中找不到任何内容

1 个答案:

答案 0 :(得分:0)

Yii框架的几个类使用db组件并期望它是yii\db\Connection类型,这就是你得到错误的原因。

请务必检查docs on the MongoDb Connection class,在这里您可以看到如何正确初始化mongodb组件。配置这样的新属性: mongodb => require(__DIR__ . '/mongodb.php')

现在您可以通过Yii::$app->mongodb

引用它来使用它

此外,如果您不需要使用关系数据库,则只需省略db组件。