Symfony2错误使用doctrine:generate:实体来创建Getter和Setter

时间:2014-04-22 23:12:05

标签: symfony doctrine-orm

我在第一个包中创建了几个实体,没有任何问题。但是当我使用普通命令创建一个新包时:

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. 

为什么找不到这些实体?

2 个答案:

答案 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