Wie die Bündel in php app/console generate:Lehre:crud
In meinem symfony 2 Projekt habe ich ein Bündel an
src/Cinergy/Bundle/PeopleServiceBundle
Nun möchte ich zu generieren Sie einen CRUD-controller basierend auf einer Doktrin der Einheit, aber ich bin ständig andernfalls geben Sie die richtige Zeichenfolge für die entity-parameter.
Versuchte ich Dinge wie:
php app/console generate:doctrine:crud --entity=Cinergy/Bundle/PeopleServiceBundle:Group
oder
php app/console generate:doctrine:crud --entity=@PeopleServiceBundle:Group
Alle von Ihnen kehren Fehlern wie:
[Doctrine\ORM\ORMException]
Unknown Entity namespace alias '@PeopleServiceBundle'.
Was ist die richtige syntax für die --entity
parameter? Oder ist es etwas fehlt, nachdem alle?
Dies ist, wie die Verzeichnisstruktur aussieht im Moment:
src/Cinergy/Bundle/PeopleServiceBundle/
├── Controller
│ ├── GroupController.php
│ └── PersonController.php
├── DependencyInjection
│ ├── Configuration.php
│ └── PeopleServiceExtension.php
├── PeopleServiceBundle.php
├── Resources
│ ├── config
│ │ ├── routing.yml
│ │ └── services.yml
│ ├── doc
│ │ └── index.rst
│ ├── public
│ │ ├── css
│ │ ├── images
│ │ └── js
│ ├── translations
│ │ └── messages.fr.xliff
│ └── views
│ └── Default
│ └── index.html.twig
└── Tests
└── Controller
├── GroupControllerTest.php
└── PersonControllerTest.php
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem alle es stellte sich heraus, dass ich die Entität erstellen, bevor ich die CRUD-controller für Sie. Natürlich, das macht Sinn. Leider ist die Sensio Generator Bundle Dokumentation hat die Liste der Operationen, die in die entgegengesetzte Anordnung, die schob mich in die falsche Richtung.
Dies bedeutet, dass die richtige Reihenfolge ist
Zuerst müssen Sie registrieren Sie Ihr Bündel in Ihren
AppKernel
.Dann einfach den folgenden Befehl ausführen.
Nicht setzen
@
vor der bundle-nameMehr über Erzeugung einer CRUD-controller basierend auf einer Doktrin der Einheit.
Entsprechend der symfony-docs, verwenden Sie die "entity-Namen als shortcut notation mit den bundle-Namen, in dem das Unternehmen ansässig ist und der name der tvhe Entität", also es sollte so etwas wie
Wenn du mehr als ein Bündel, und zu verschiedenen Datenbank-Verbindung einfach aktualisieren Sie Ihre config.yml und Parameter.yml durch hinzufügen von Konfiguration und Parameter.
Diese lösen problem mit CRUD-generation.
Habe ich gesucht für Stunden, bis ich herausfand, dass in meiner app/config/config.yml unter Lehre.orm ich entfernt
auto_mapping: true
was das Problem verursacht. Dies kann nützlich sein für andere Menschen 🙂Falls es noch relevant für jemanden 🙂
Jungs, es ist, weil DoctrineBundle DoctrineExtension kompilieren Sie die Liste der gültigen Aliasnamen bezogen auf alle registrierten bundles, die 'Einheit' (oder andere Konfiguration) Ordner in Ihnen.
So, in Reihenfolge zu use doctrine:generate:crud erzeugen oder:Lehre:crud,
erstellen Sie einfach Ordner Entität in Ihrem Bündel, und nicht erforderlich, die Person zuerst (wie der Befehl schon sagt - es ist wahr).
Damit du es wird funktionieren, wenn Sie schon eine Person in deinem Bündel,
oder wenn Sie nur leere Entity-Ordner in Ihrem Bündel.