我试着找出https://github.com/yiisoft/yii2-mongodb上的错误,但有人只是让我链接到文档和官方聊天。如何连接到群集没有任何答案。请帮我解决这个问题,我尝试了很多,并且花了最后两天来解决它,但不能理解为什么它没有连接。
我尝试在我的项目上配置yii2-mongodb,使用composer安装,然后添加
在config / web.php
中'mongodb' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://user:password@insta1-shard-00-00-s0vxe.mongodb.net:27017,insta1-shard-00-01-s0vxe.mongodb.net:27017,insta1-shard-00-02-s0vxe.mongodb.net:27017/database?ssl=true&replicaSet=Insta1-shard-0&authSource=admin',
]
并使用此模型:
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use yii\mongodb\Query;
/**
* BlogContent is the model behind the contact form.
*/
class BlogContent extends Model
{
public function getPostList($page) {
$query = new Query();
// compose the query
$rows = $query->select(['name', 'price', 'title'])
->from('services')->all();
}
}
它应该从集合中返回所有文档,但它会返回给我这个堆栈:
yii\base\UnknownMethodException: Calling unknown method: yii\mongodb\QueryBuilder::build() in /var/www/service/vendor/yiisoft/yii2/base/Object.php:220
Stack trace:
#0 /var/www/service/vendor/yiisoft/yii2/db/Query.php(126): yii\base\Object->__call('build', Array)
#1 /var/www/service/vendor/yiisoft/yii2/db/Query.php(213): yii\db\Query->createCommand(Object(yii\mongodb\Connection))
#2 /var/www/service/models/BlogContent.php(21): yii\db\Query->all()
#3 /var/www/service/controllers/BlogController.php(35): app\models\BlogContent->getPostList(1)
#4 [internal function]: app\controllers\BlogController->actionIndex(1)
#5 /var/www/service/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#6 /var/www/service/vendor/yiisoft/yii2/base/Controller.php(156): yii\base\InlineAction->runWithParams(Array)
#7 /var/www/service/vendor/yiisoft/yii2/base/Module.php(523): yii\base\Controller->runAction('index', Array)
#8 /var/www/service/vendor/yiisoft/yii2/web/Application.php(102): yii\base\Module->runAction('blog/index', Array)
#9 /var/www/service/vendor/yiisoft/yii2/base/Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))
#10 /var/www/service/web/index.php(12): yii\base\Application->run()
#11 {main}
其他信息:
Yii版本| 〜2.0.5
Yii MongoDB版本| 〜2.1.0
MongoDB服务器版本| MongoDB Atlas
PHP版本| 7.0
操作系统| Ubuntu 16.04
我通过将$ db连接作为可选参数传递给查询来解决第一个问题,但无论如何它都无法连接。此外,我在本地计算机上测试与MongoDB的连接 - 对于单个数据库,它可以根据需要运行。
答案 0 :(得分:1)
问题是因为我的php-mongodb与php7有冲突,在我更新后它们都开始按需工作。