Ich hatte eine Entitätsklasse in Aib \ PlatformBundle \ Entity \ User.php
Ich hatte keine Probleme beim Versuch, die Formularklasse zu erstellen
PHP App / Konsole Doktrin: generieren: Formular AibPlatformBundle: Benutzer
Jetzt habe ich den Namespace in Aib \ PlatformBundle \ Entity \ Identity \ User geändert, aber wenn ich versuche, das Formular mit der Aufgabe zu generieren, die ich zuvor gesagt habe:
"Klasse Aib \ PlatformBundle \ Entity \ User ist keine gültige Entität oder zugeordnete Superklasse."
Dies ist der Dateiinhalt:
<?php
namespace Aib\PlatformBundle\Entity\Identity;
use Doctrine\ORM\Mapping as ORM;
/**
* Aib\PlatformBundle\Entity\Identity\User
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Aib\PlatformBundle\Entity\Identity
\UserRepository")
*/
class User
{
...
Irgendeine Idee?
symfony2.0.4
php
symfony
doctrine-orm
ziiweb
quelle
quelle
Antworten:
Hatte dieses Problem - vergessen Sie nicht die Anmerkung
* @ORM\Entity
wie unten:quelle
Hatte gestern dieses Problem und fand diesen Thread. Ich habe die Entität mit der Zuordnung in einem neuen Bundle erstellt (z. B. MyFooBundle / Entity / User.php), die gesamte Konfiguration gemäß den Dokumenten vorgenommen, aber beim Laden der App den gleichen Fehler von oben erhalten.
Am Ende wurde mir klar, dass ich MyFooBundle nicht in AppKernel geladen habe:
Eine gute Möglichkeit, dies zu debuggen, besteht darin, diesen Befehl auszuführen:
quelle
Überprüfen Sie Ihre config.yml-Datei, die ungefähr Folgendes enthalten sollte:
Fügen Sie der Zuordnungsliste Ihr eigenes Bundle hinzu.
quelle
Ich habe dies gelöst, indem ich
false
als zweiten Parameter an übergeben habeDoctrine\ORM\Configuration::newDefaultAnnotationDriver
.Ich habe eine Weile gebraucht, um Google und den Quellcode zu durchsuchen.
Mein Fall war etwas Besonderes, da ich eine Zuordnung verwendete, die auf ein anderes Verzeichnis verweist, das nicht mit der Symfony-Installation zusammenhängt, da ich auch Legacy-Code verwenden musste.
Ich hatte ältere Unternehmen überarbeitet und sie hörten auf zu arbeiten. Früher wurde
@Annotation
anstelle von verwendet@ORM\Annotation
, sodass nach dem Refactoring die Metadaten einfach nicht gelesen werden konnten. Wenn Sie keinen einfachen Anmerkungsleser verwenden, scheint alles in Ordnung zu sein.quelle
In meinem Fall wurde das Problem gelöst, indem der Cache meines Servers von eAccelerator auf APC geändert wurde . Anscheinend entfernt eAccelerator alle Kommentare aus Dateien, wodurch Ihre Anmerkungen beschädigt werden.
quelle
opcache.save_comments=1
. Vielleicht gibt es auch eine für eAccelerator / APC?Ich habe dieses Problem durch Festlegen
$useSimpleAnnotationReader=false
beim Erstellen des behobenMetaDataConfiguration
.quelle
Vielen Dank an Mark Fu und Mogoman
Ich wusste, dass es irgendwo in der config.yml sein musste ... und es gegen die testen konnte
wirklich geholfen!
Tatsächlich stoppt dieser Befehl einfach bei einem Fehler ... keine Rückmeldung, aber wenn alles in Ordnung ist, sollten Sie alle Ihre Entitäten aufgelistet sehen können.
quelle
Ich habe dieselbe Ausnahme behoben, indem ich eine widersprüchliche automatisch generierte orm.php-Datei im Ordner Resources / config / doi des Bundles gelöscht habe. In der Dokumentation heißt es: "Ein Bundle kann nur ein Metadatendefinitionsformat akzeptieren. Beispielsweise ist es nicht möglich, YAML-Metadatendefinitionen mit kommentierten PHP-Entitätsklassendefinitionen zu mischen."
quelle
Sehr hohe Wahrscheinlichkeit, dass Sie PHP 5.3.16 haben (Symfony 2.x funktioniert nicht damit). Auf jeden Fall sollten Sie die Überprüfungsseite auf http://you.site.name/config.php laden. Wenn Ihr Projekt nicht auf dem Hosting-Server funktioniert hat, müssen die nächsten Zeilen in "config.php" entfernt werden:
Viel Glück!
quelle
In meinem Fall war ich während eines Refaktors zu eifrig und hatte eine Doktrin-Yml-Datei gelöscht!
quelle
In meinem Fall auf meinem Mac habe ich src / MainBundle / Resource / Config / Doctrine verwendet. Natürlich hat es auf dem Mac funktioniert, aber auf dem Ubuntu-Produktionsserver nicht. Nach der Umbenennung in Config to config und Doctrine to Doctrine wurden die Zuordnungsdateien gefunden und es begann zu funktionieren.
quelle
Ich habe die gleiche Fehlermeldung wie in Ihrem Fall beseitigt, indem ich app / console_dev anstelle von nur app / console verwendet habe
quelle