我想将我的yii2-advance模板项目连接到MongoDB但是有一个问题。
我已完成指南here,并已将这些设置添加到common/config/main-local.php
和test-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的连接吗?或者它自动处理连接?
答案 0 :(得分:0)
我在我的控制器中测试了MongoDB查询,但我收到了身份验证错误。
我为我的数据库设置了用户名和密码,并像这样更改dsn
:
'dsn' => 'mongodb://username:password@localhost:27017/medadnoki',
然后我在getIsActive()
函数中得到了错误的错误,但我的查询工作正常。我认为函数Yii::$app->db->getIsActive()
不会检查数据库连接并用于其他目的。