我在第一个包中创建了几个实体,没有任何问题。但是当我使用普通命令创建一个新包时:
php app/console generate:bundle
这会创建一个包含模板文件的bundle结构,并在app / config / AppKernel.php中注册该bundle
然后我在新的包文件夹中创建了实体:/Acme/Bundle/Entity/
。
但是当我使用命令生成getter和setter时:
php app/console doctrine:generate:entities AcmeBundle
它出错了:
[RuntimeException]
Bundle "AcmeBundle" does not contain any mapped entities.
为什么找不到这些实体?
答案 0 :(得分:0)
这是因为新的bundle没有自动注册到/app/config/config.yml文件中。因此,学说显然不知道在哪里寻找实体。
如果您只有一个ORM数据库连接,也许这不是问题。但是,如果您使用特殊的ORM映射定义了多个连接,则需要记住使用正确的实体管理器连接注册Every Single Bundle:
doctrine:
orm:
default_entity_manager: cms
entity_managers:
cms:
connection: cms
mappings:
GutensiteCmsBundle: ~
GutensiteArticleBundle: ~
billing:
connection: billing
mappings:
GutensiteBillingBundle: ~
似乎应该有一个更好的方法让所有实体都使用默认的“默认”,这样你就不必每次都这样做了。有人知道吗?
答案 1 :(得分:0)
我想你错过了包名。您应该创建像AcmeHelloBundle
这样的包而不是AcmeBundle
,其中Hello
是您的包的名称。像这样:
php app/console generate:bundle --namespace=Acme/HelloBundle
然后运行
php app/console doctrine:generate:entities Acme