簡體   English   中英

無法將Yii2連接到mongodb

[英]Can not connect Yii2 to mongodb

我想將yii2-advance模板項目連接到MongoDB,但是有問題。

我在這里完成了指南,並將這些設置添加到common/config/main-local.phptest-local.php

<?php
return [
    'components' => [
        'db' => [
            'class' => '\yii\mongodb\Connection',
            'dsn' => 'mongodb://@localhost:27017/medadnoki',
            'options' => [
                "username" => "",
                "password" => ""
            ]
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@common/mail',
            'useFileTransport' => true,
        ],
    ],
];

但是當我使用此代碼時,我得到了錯誤:

use yii\mongodb\Connection;
...
$connection = new Connection();
        if ($connection->getIsActive()) {
            echo "true";
        }
        else {
            echo "false";
        }

我的代碼有什么問題?

UPDATE1:我已經在yii2-basic中測試了我的代碼,並將db.php更改為:

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

然后將以下代碼添加到控制器中:

if(Yii::$app->db->getIsActive()) {
            echo "true";
        } else {
            echo "false";
        }

但它仍然返回false,有什么解決方法嗎? 我應該手動創建到db的連接嗎? 或它會自動處理連接?

我已經在控制器中測試了MongoDB查詢,但收到了身份驗證錯誤。 我為數據庫設置了用戶名和密碼,並像這樣更改dsn

'dsn' => 'mongodb://username:password@localhost:27017/medadnoki',

再一次,我在getIsActive()函數中得到了錯誤錯誤,但是我的查詢工作正常。 我認為函數Yii::$app->db->getIsActive()不會檢查數據庫連接,而是用於其他目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM