在config.yml中定义MongoDB的正确方法

时间:2014-02-04 14:46:49

标签: php symfony doctrine-orm doctrine doctrine-odm

我在我的项目中使用MongoDB,但显然Doctrine更新了他们的bundle,现在我遇到问题,如果我运行“composer update”命令。这是我的doctrine.yml文件:

# ODM
doctrine_odm.mongodb:
  connections:
    default:
      server: mongodb://%mongo_host%:%mongo_port%
      options: {}
  default_database: %mongo_database%
  document_managers:
    default:
      auto_mapping: true

但是我收到了这个错误:

  

[Symfony的\元器件\ DependencyInjection \异常\ InvalidArgumentException]   没有可以加载配置的扩展   “doctrine_odm.mongodb”(in   /var/www/html/kraken/app/config/doctrine.yml)。

如果我使用其他配置:

# ODM
doctrine_mongodb:
  connections:
    default:
      server: mongodb://%mongo_host%:%mongo_port%
      options: {}
  default_database: %mongo_database%
  document_managers:
    default:
      auto_mapping: true

然后错误转换为这个:

  

[Symfony的\元器件\ DependencyInjection \异常\ ParameterNotFoundException]   服务“doctrine_mongodb.odm.default_configuration”有一个   依赖于不存在的参数   “doctrine_mongodb.odm.default_commit_options”。你的意思是其中之一吗?   这些:“doctrine_mongodb.odm.default_connection”,   “doctrine_mongodb.odm.default_document_manager”?

我做错了什么或我错过了什么?

2 个答案:

答案 0 :(得分:1)

添加(几分钟前我运行作曲家更新时遇到了同样的问题):

doctrine_mongodb:
    default_commit_options: ~

答案 1 :(得分:1)

快速回答。这似乎是一个众所周知的问题。

https://github.com/doctrine/DoctrineMongoDBBundle/issues/222

解决方案是添加默认选项:

doctrine_mongodb:

default_commit_options: ~