【问题标题】:Connect yii2 with mongodb连接yii2和mongodb
【发布时间】:2014-12-08 07:35:46
【问题描述】:

我是 Yii2 的新手。谁能告诉我如何用 mongodb 配置 YII2 以及如何在 YII2 和 mongodb 之间建立连接?我尝试从 git hub 下载 mongodb 包并尝试运行以下命令

php composer.phar require --prefer-dist yiisoft/yii2-mongodb "*"

在我安装 Yii2 的根文件夹内的命令提示符中,但出现以下错误

 Your requirements could not be resolved to an installable set of packages.
 Problem 1
- yiisoft/yii2 2.0.0 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching      package found.
- yiisoft/yii2 2.0.0 requires bower-asset/jquery 2.1.*@stable | 1.11.*@stable -> no matching package found.
- Installation request for yiisoft/yii2 == 2.0.0.0 -> satisfiable by yiisoft/yii2[2.0.0].

【问题讨论】:

标签: mongodb yii2 yii2-advanced-app


【解决方案1】:

如果您尝试通过命令提示符安装它,请尝试以下使用 composer 的命令

composer require --prefer-dist yiisoft/yii2-mongodb "*"

这适用于我的 Windows 8 环境。

要在安装包时忽略依赖错误,请使用--ignore-platform-refs 开关:

composer require --ignore-platform-refs --prefer-dist yiisoft/yii2-mongodb "*"

【讨论】:

  • 不是 MongoDB 包导致问题,安装正常,他遇到问题是因为他没有正确遵循安装教程
  • 谢谢。你节省了我的时间。 :))
【解决方案2】:

请记住,您还必须在 PHP 中安装 MongoDB 扩展才能使此插件正常工作:

http://php.net/manual/en/class.mongodb.php

【讨论】:

    【解决方案3】:

    似乎问题出在 yii2 composer 依赖项上,请在控制台中运行此命令以添加全局依赖项,

    1) composer 全局需要 "fxp/composer-asset-plugin:~1.1.1"

    2) 在您的 composer.json 文件中添加 "yiisoft/yii2-mongodb": "~2.0.0"

    3) 现在运行 composer installcomposer update

    4) Composer install 只会在您的 composer 文件中安装需要的包,但 composer update 也会检查是否有任何新版本您在 composer.js 中提到的软件包,然后安装新版本。

    5) 现在在您的 common/config/main.php 文件中添加以下代码

    return [
        //....
        'components' => [
            'mongodb' => [
                'class' => '\yii\mongodb\Connection',
                'dsn' => 'mongodb://developer:password@localhost:27017/mydatabase',
            ],
        ],
    ]; 
    

    现在是测试 mongoDb 是否工作的时候了。

    $collection = Yii::$app->mongodb->getCollection('customer');
    $collection->insert(['name' => 'John Smith', 'status' => 1]);
    

    欲了解更多信息,请点击以下链接,

    https://github.com/yiisoft/yii2-mongodb

    【讨论】:

    • 'dsn' => 'mongodb://developer:password@localhost:27017/mydatabase' 如果您希望对“admin”数据库进行身份验证,我建议删除两个“/mydatabase”来自 URI 字符串。驱动程序已经默认对“admin”数据库进行身份验证。如果您确实希望指定不同的数据库,您可以通过 URI 字符串(您当前指示您要针对名为“mydatabase”的数据库进行身份验证)或 authSource 选项(指定为查询字符串URI 字符串中的参数或通过选项数组)。
    【解决方案4】:
    'mongodb' => [
            'class' => '\yii\mongodb\Connection',
            'dsn' => 'mongodb://127.0.0.1:27017/vinagex',
            'options' => [
                "username" => "vinagex",
                "password" => "vinagex"
            ]
        ],
    

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 2018-12-03
      • 1970-01-01
      相关资源
      最近更新 更多