Symfony2 / Doctrine2:生成捆绑包外的实体

时间:2012-04-18 15:22:57

标签: php symfony doctrine-orm entities

我正在尝试为Symfony 2应用程序生成实体。实体将由几个包(可能是几个应用程序)共享,因此我不希望它们属于一个包。 我希望它们位于src / MyApp / Entity文件夹中。

我的实体已经有了YML,存储在src / MyApp / Entity / config / doctrine(class1.orm.yml,...)

我正在尝试使用doctrine生成相应的PHP类:generate:entities任务

以下是我在app / config / config.yml

中的内容
orm:
    auto_generate_proxy_classes: %kernel.debug%
    auto_mapping: false
    mappings: 
      AppRest: 
        type: yml 
        prefix: AppRest\Entity 
        dir: %kernel.root_dir%/../src/AppRest/Entity/config/doctrine

这是我用来生成实体的命令

php app/console doctrine:generate:entities AppRest/Entity

这是我得到的例外

[InvalidArgumentException]
Bundle "AppRest" does not exist or it is not enabled.

我想让学说理解我并不是想要生成实体。我也尝试指定--path选项(--path = src / AppRest / Entity),但它没有改变任何东西。

有人可以帮忙吗?

修改

我删除了我的目录中的额外空间,这解决了问题。路径选项必须指定

3 个答案:

答案 0 :(得分:3)

实际上,我在上面的dir选项中错过了一个空格。这现在有效,但我仍然想知道这是否是最佳方式。

答案 1 :(得分:1)

答案 2 :(得分:-1)

如果出现此类错误,请检查是否指定了捆绑包的快捷方式名称,而不是捆绑包目录的名称。例如,如果你有Acme \ DemoBundle,它的短名称是AcmeDemoBundle。在这种情况下

orm:
    mappings: 
      DemoBundle: 
          ....

是不正确的。

正确的是:

orm:
    mappings: 
      AcmeDemoBundle: 
          ....