我一直在关注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
答案 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: ~
我意识到这不是你问题的解决方案,但我现在已经遇到过这个问题,所以其他人也可能会这样做!