简体   繁体   中英

Symfony2/Doctrine2: Generate entities that are outside a bundle

I'm trying to generate entities for my Symfony 2application. The entities will be shared by several bundles (and maybe several applications), and thus I do not want them to belong to a bundle. I want them to be in the src/MyApp/Entity folder.

I already have the YML for my entities, stored in src/MyApp/Entity/config/doctrine (class1.orm.yml, ...)

I'm trying to generate the corresonding PHP classes using the doctrine:generate:entities task

Here is what I have in my 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

Here is the command I use to generate the entities

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

Here is the exception I get

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

I want to make doctrine understand that I'm not trying to generate entities tha are in a bundle. I also tried specifying the --path option (--path=src/AppRest/Entity), but it did not change anything.

Can anyone help ?

Edit :

I removed the extra space in my dir, which solved the problem. The path option must be specified

Actually, I was just missing a space in my dir option above. This works now, but I'm still wondering whether that's the best way to go.

When you have such error, check if you specified the shortcut name of the bundle, not the name of the bundle directory. For example, if you have Acme\\DemoBundle the shortname of it is AcmeDemoBundle. In this case

orm:
    mappings: 
      DemoBundle: 
          ....

is INCORRECT.

the correct is:

orm:
    mappings: 
      AcmeDemoBundle: 
          ....

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM