如何在Symfony 3.4+Symfony Flex环境下使用doctrine:mongodb:generate:documents命令
解决Symfony Flex无默认Bundle下使用
doctrine:mongodb:generate:documents的问题 嘿Chris,别担心,我来帮你搞定这个问题!在Symfony Flex的symfony/skeleton项目里没有默认Bundle确实会让这个命令的用法有点不一样,不过操作起来很简单,跟着下面的步骤来就行:
1. 确保Doctrine MongoDB ODM Bundle已安装
如果还没装的话,先通过Composer安装依赖:
composer require doctrine/mongodb-odm-bundle
2. 正确使用生成命令
原来的命令需要指定Bundle名称,但现在我们没有默认Bundle,所以直接指定实体的命名空间或目录就行:
- 生成
App\Entity下所有实体的文档类:
php bin/console doctrine:mongodb:generate:documents App\Entity
- 只生成单个实体的文档类(比如
YourEntity):
php bin/console doctrine:mongodb:generate:documents App\Entity\YourEntity
3. 验证实体映射配置(可选但重要)
确保config/packages/doctrine_mongodb.yaml里的映射配置正确指向你的实体目录,这样Doctrine才能找到它们。典型配置如下:
doctrine_mongodb: connections: default: server: '%env(MONGODB_URL)%' options: {} default_database: '%env(MONGODB_DB)%' document_managers: default: auto_mapping: true mappings: App: is_bundle: false type: annotation dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' alias: App
这里的关键是is_bundle: false,告诉Doctrine这不是Bundle里的实体,而是独立的项目实体。
这样操作之后,你就能正常生成MongoDB文档类啦!
内容的提问来源于stack exchange,提问作者user1041440
相关产品推荐
相关产品推荐

