11

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

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

我正在尝试使用教义生成相应的 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),但它没有改变任何东西。

任何人都可以帮忙吗?

编辑

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

4

3 回答 3

4

实际上,我只是在上面的 dir 选项中缺少一个空格。这现在有效,但我仍然想知道这是否是最好的方法。

于 2012-04-19T07:31:26.513 回答
1

采用:

is_bundle: false

更多信息在这里:http: //zalas.eu/how-to-store-doctrine-entities-outside-of-a-symfony-bundle/

于 2015-03-10T14:16:14.997 回答
-1

当您遇到此类错误时,请检查您是否指定了包的快捷方式名称,而不是包目录的名称。例如,如果您有 Acme\DemoBundle,则它的短名称是 AcmeDemoBundle。在这种情况下

orm:
    mappings: 
      DemoBundle: 
          ....

是不正确的。

正确的是:

orm:
    mappings: 
      AcmeDemoBundle: 
          ....
于 2013-10-21T06:48:10.083 回答