首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2 + DoctrineMongoDBBundle配置

Symfony2 + DoctrineMongoDBBundle配置
EN

Stack Overflow用户
提问于 2011-03-02 00:27:38
回答 1查看 4.2K关注 0票数 5

我试图以这样的方式将Symfony 2与MongoDB连接起来:

config.yml)

  • Get

  • 注册DoctrineMongoDBBundle in AppKernel::registerBundles method

  • Set 'doctrine_mongo_db‘配置(见下文HelloController action

G 212中容器中的doctrine.odm.mongodb.document_manager)

当我试图运行应用程序时,会抛出MongoConnectionException。

有人能帮我解决这个问题吗?

AppKernel.php

代码语言:javascript
复制
public function registerBundles()
{
        $bundles = array(
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Bundle\TwigBundle\TwigBundle(),
            new Symfony\Bundle\DoctrineMongoDBBundle\DoctrineMongoDBBundle(),
            new Sensio\HelloBundle\HelloBundle()
        );

        return $bundles;
    }

config.yml

代码语言:javascript
复制
framework:
    charset:       UTF-8
    router:        { resource: "%kernel.root_dir%/config/routing.yml" }
    templating:    { engines: ['twig'] } 

## Doctrine Configuration

doctrine_mongo_db:
    server: mongodb://root:root@192.168.0.111:27017
    default_database: test
    options: { connect: true }
    mappings:
        HelloBundle: { type: annotation, dir: Document }

# Twig Configuration

twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

HelloController.php

代码语言:javascript
复制
/* @var $dm \Doctrine\ODM\MongoDB\DocumentManager */
$dm = $this->get('doctrine.odm.mongodb.document_manager');

异常(第96行)

代码语言:javascript
复制
connecting to failed: Transport endpoint is not connected

in ~/vendor/doctrine-mongodb/lib/Doctrine/MongoDB/Connection.php line 96 »

93.    if ($this->server) {
94.        $this->mongo = new \Mongo($this->server, $this->options);
95.    } else {
96.        $this->mongo = new \Mongo();
97.    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-23 22:19:42

问题是在DoctrineMongoDBBundle配置加载中。修补程序(https://github.com/fabpot/symfony/pull/740)应该很快就会合并。

现在,您可以使用下面的固定方法。

代码语言:javascript
复制
public function load(array $configs, ContainerBuilder $container)
{
    $mergedConfig = array();
    foreach ($configs as $config) {
        $mergedConfig = array_merge_recursive($mergedConfig, $config);
    }

    $this->doMongodbLoad($mergedConfig, $container);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5162079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档