2012-04-18 16 views
10

Ich versuche Entitäten für meine Symfony 2-Anwendung zu generieren. Die Entitäten werden von mehreren Bündeln (und möglicherweise mehreren Anwendungen) geteilt, und daher möchte ich nicht, dass sie zu einem Bündel gehören. Ich möchte, dass sie sich im Ordner src/MyApp/Entity befinden.Symfony2/Doctrine2: Generieren Sie Entitäten, die sich außerhalb eines Bundles befinden

Ich habe bereits die YML für meine Entitäten, gespeichert in src/MyApp/Entity/config/Lehre (class1.orm.yml, ...)

Ich versuche, die corresonding PHP-Klassen zu erzeugen, verwenden die Lehre: erzeugen: Aufgabe Entitäten

Hier ist, was ich in meiner 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 

Hier ist der Befehl, den ich die Objekte erzeugen verwenden

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

Hier ist die Ausnahme, die ich

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

Ich möchte Lehre zu verstehen, dass ich nicht in einem Bündel zu erzeugen Einheiten tha sind bin versucht. Ich habe auch versucht, die Option --path (--path = src/AppRest/Entity) anzugeben, aber es hat nichts geändert.

Kann jemand helfen?

bearbeiten:

Ich entfernte den zusätzlichen Platz in meinem dir, was das Problem gelöst. Die Pfadoption muss angegeben werden

+1

Ich glaube nicht, werden Sie viel Glück haben mit S2 immer zu erzeugen und zu verwenden D2-Entitäten außerhalb eines Bündels Leg sie einfach in ihr eigenes Bündel und sei damit fertig. Es ist einfach, Entitäten über mehrere Bundles hinweg zu teilen. – Cerad

+0

+1 Die Verwendung von Sf2 gekoppelt mit Doctrine2 lässt Sie Doctrine-Implementierung von Sf2 akzeptieren ... – AlterPHP

Antwort

3

Eigentlich fehlte mir gerade ein Leerzeichen in meiner Option oben. Das funktioniert jetzt, aber ich frage mich immer noch, ob das der beste Weg ist.

+3

Bundle Zweck ist, Ihren PHP-Code mit Symfony zu integrieren. Je mehr Code außerhalb eines Bundles verschoben wird, desto weniger Symfony ist davon abhängig. –

+0

Bündel ist der beste Weg zu gehen. Versuchen Sie, einige Abfragen zu erstellen, bevor Sie zu weit gehen. Sie könnten dort einige Probleme auftreten. – Cerad

+1

Ja, wir haben das neu bewertet und uns für eine Implementierung mit einem CoreBundle, der unsere Entitäten enthält, und spezialisierten Bundles entschieden, die sich auf dieses CoreBundle beziehen – David

-1

Wenn Sie einen solchen Fehler haben, überprüfen Sie, ob Sie den Verknüpfungsnamen des Bundles und nicht den Namen des Bundle-Verzeichnisses angegeben haben. Wenn Sie beispielsweise Acme \ DemoBundle haben, lautet der Kurzname AcmeDemoBundle. In diesem Fall

orm: 
    mappings: 
     DemoBundle: 
      .... 

ist FALSCH.

die richtige ist:

orm: 
    mappings: 
     AcmeDemoBundle: 
      .... 
Verwandte Themen