Symfony2 mongodb安装

时间:2013-11-26 23:52:49

标签: php mongodb symfony

我一直在关注this全新安装的symfony2,一切顺利,直到我点击它所说的步骤

php app/console doctrine:mongodb:generate:documents AcmeStoreBundle

然后给我错误

Bundle AcmeStoreBundle does not contain any mapped documents. Did you maybe forget to define a mapping configuration?  

我在config.yml之外完全遵循指南,因为我打开了auth,我有一个自定义URI连接字符串。我不相信这是问题所在,但无论如何我都会发布。

doctrine_mongodb:
connections:
    default:
        server: mongodb://root:password@localhost:27017
        options: {}
default_database: admin
document_managers:
    default:
        auto_mapping: true

4 个答案:

答案 0 :(得分:3)

啊哈,我以前遇到过这个问题。保持冷静,你可能忘了放< ?php

答案 1 :(得分:2)

我想你忘记了以下步骤:

添加地图信息(http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html#add-mapping-information

当我执行该步骤时,我会收到与您相同的错误。要么你没有这样做,要么你做错了,所以我建议你再看一遍。

答案 2 :(得分:1)

所以要明确:DoctrineMongoDBBundle在bundle中查找名为Document的包。如果您的实体存储在其他地方,例如在Entity包中,您将收到此错误。

在这种情况下的解决方案是将教义指向正确的文件夹,如下所示:

doctrine_mongodb:
    connections:
        default:
            server: mongodb://localhost:27017
            options: {}
    default_database: test_database
    document_managers:
        default:
            auto_mapping: true
            mappings:
                AppBundle:
                    type: annotation
                    dir: Entity
                    prefix: 'AppBundle\Entity'

答案 3 :(得分:0)

我通过在configs.yml文件中添加一个条目来解决这个问题。我的文档需要所有注释,但这也是必需的。

## config.yml

# MongoDB Configuration
doctrine_mongodb:
    document_managers:
        default:
            connection: default
            database: %database_name%
            retry_connect: %database_retry%
            retry_query: %database_retry%
            mappings:
                # Mapped bundles go here
                EccSpecialBundle: ~
                EccSuperBundle: ~

我意识到这不是你问题的解决方案,但我现在已经遇到过这个问题,所以其他人也可能会这样做!