Ich schreibe eine Symfony2 / Doctrine2-App und habe die von StofDoctrineExtensionsBundle bereitgestellte Translatable-Erweiterung mit YAML installiert und konfiguriert, es werden jedoch keine zusätzlichen Übersetzungstabellen generiert und beim Versuch, mit Entitäten zu arbeiten, die folgende Ausnahme ausgelöst übersetzbare Eigenschaften:
Es wurde keine Zuordnungsdatei mit dem Namen '/var/www/my-project/vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity/Translation.orm.yml' für die Klasse 'Gedmo \ Translatable \ Entity \ Translation gefunden '.
Ich versuche, die Translatable-Erweiterung in meiner Symfony2 / Doctrine2-Anwendung zu verwenden, die von StofDoctrineExtensionsBundle , aber die meisten verfügbaren Dokumente, die ich finden kann, zielen hauptsächlich auf die Verwendung von Anmerkungen für die Konfiguration, aber ich gehe mit YAML, weil ich so alles andere konfiguriert habe.
Ich habe meiner composer.json
-Datei Folgendes hinzugefügt und den Befehl composer update
: "stof/doctrine-extensions-bundle": "dev-master"
ausgeführt, und das Paket ist in meiner app/AppKernel.php
-Datei registriert.
Meine app/config/config.yml
-Datei hat die folgende Konfiguration:
Ich habe dann eine Entität in YAML definiert:
%Vor% Ich habe dann den Konsolenbefehl php app/console doctrine:generate:entities FooContentBundle
ausgeführt, um die Entity-Klassen zu generieren, und habe die Locale-Eigenschaft und den Setter manuell hinzugefügt:
Nachdem ich php app/console doctrine:schema:update --force
ausgeführt habe, wird meine Artikeltabelle zusammen mit ihren Assoziationen erstellt, aber nichts mit Übersetzungen (ich gehe davon aus, dass eine Tabelle dafür erstellt werden soll ...)
Wenn ich dann mit einer Entität arbeite, die übersetzbar ist, bekomme ich die Ausnahme:
Es wurde keine Zuordnungsdatei mit dem Namen '/var/www/my-project/vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity/Translation.orm.yml' für die Klasse 'Gedmo \ Translatable \ Entity \ Translation gefunden '.
Die YAML-Datei, auf die die Exception verweist, existiert nicht in dem Pfad, in dem sie gesucht wird, und auch nicht anderswo.
Hat jemand irgendwelche Ideen, wo ich falsch liege?
Running php app/console doctrine:mapping:info
zeigt alle meine Entitäten und nichts in Bezug auf Übersetzungen an, wenn ich den gedmo_translatable:
Teil meiner app/config/config.yml
Datei aktualisiere und type: yml
zu type: annotation
ändere, führe den Befehl erneut aus, I Holen Sie sich Folgendes aufgelistet:
An diesem Punkt kann ich mein Schema aktualisieren, und ich habe eine neue Tabelle ext_translations
. Bei der Arbeit mit meinen Entitäten wird jedoch nichts eingefügt, vermutlich weil die Konfiguration jetzt eher durch Annotation als durch YAML erwartet wird. Wenn ich meine Konfiguration wieder in type: yml
ändere, wird die Exception erwartungsgemäß erneut ausgelöst.
Nachdem Sie versucht haben, Dinge, die in der Dokumentation vorgeschlagen werden, nicht zu verwenden, d. h. sowohl Annotation- als auch YAML-Konfigurationen im selben Bundle zu mischen, würde es so aussehen, als ob Dinge funktionieren. Das Ganze fühlt sich an wie ein Fehler oder eine unvollständige Implementierung, aber ich kann etwas falsch machen. Hier ist, was funktioniert ...
Einstellung in app/config/config.yml
: doctrine.orm.mappings.gedmo_translatable.type: annotation
Einstellung der übersetzbaren Konfiguration in meiner YAML-Schemadefinition, wie in meiner ursprünglichen Frage sowie als Anmerkung in meiner Klassendatei beschrieben:
%Vor%Danach wird die zusätzliche Tabelle erstellt und Übersetzungen werden eingefügt, wenn die Entität beibehalten wird.
Tags und Links symfony doctrine2 translation