Symfony2 - Die Klasse 'X' wurde nicht gefunden in der Kette konfigurierten namespaces
Habe ich schon immer auf der Suche um mein problem zu lösen. Aber ich finde keine Lösung.
Ich bekomme immer diese Fehlermeldung, wenn ich versuche, öffnen Sie die homepage:
Uncaught exception 'Doctrine\Common\Persistence\Mapping\MappingException' with message 'Die Klasse 'Test\Bundle\UserBundle\Entity\User' wurde nicht gefunden in der Kette konfigurierten namespaces " in...
Komisch ist, dass ich nur bekommen, wenn ich folgende URL:
Aber wenn ich dann auf diese URL, ich bekomme keine Fehler und meine Seite richtig angezeigt werden:
Meine Konfiguration sieht so aus (config.yml):
# Doctrine Configuration
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
test:
driver: "%database_driver2%"
host: "%database_host2%"
port: "%database_port2%"
dbname: "%database_name2%"
user: "%database_user2%"
password: "%database_password2%"
charset: UTF8
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
TestUserBundle:
type: annotation
Und ich rufe die Lehre in meinem benutzerdefinierten Dienst wie dieser:
public function __construct(EntityManager $em)
{
$repositiory = $em->getRepository('Test\Bundle\UserBundle\Entity\User');
$this->user = $repositiory->find($_SERVER['AUTH_USER']);
}
Meine Symfony-Anwendung läuft auf einem IIS-Webserver.
Tun Sie Jungs wissen, wo ich einen Fehler gemacht?
- haben Sie eine
php app/console cache:clear --env=prod
? - Ich habe versucht, es zu tun, aber ich erhalte eine Fehlermeldung, die kann ich nicht umbenennen, das cache-Verzeichnis "prod"
- Dann gehen Sie in das Verzeichnis
app/cache/prod
und löscht alles in diesem Verzeichnis. - Sie brauchen, um vorübergehend stoppen Sie alle PHP-Prozesse, die möglicherweise mit der
prod
- Verzeichnis (d.h. wenn Sie schon liefconsole server:run
) und versuchen Sie es erneut. Wenn Sie das nicht tun, versuchen Sie stackoverflow.com/questions/97875/rm-rf-equivalent-for-windows - Danke, ich habe ganz vergessen über die Prozesse. Es funktionierte jetzt, danke sehr!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuordnung name ist
TestUserBundle
aber der Weg istTest\Bundle\User\Bundle
sein, sollte es nicht benannt werdenTestBundleUserBundle
statt? Auch, in der Regel diemappings
undauto_generate_proxy_classes
eingestellt sindtrue
im dev-Modus das könnte erklären, warum es dort und nicht in prod.Möchten Sie vielleicht, um eine Arbeitskopie der Dokumentation (Symfony 2.7), die zeigt, wie genau Sie sollten die Konfiguration der mappings je nach Ihrem Fall.
Benutzerdefinierte Zuordnung von Entitäten in einem Bundle
Zuordnung von Entitäten, die Außerhalb eines Bundles
Last, but not least, immer leeren Sie Ihren cache-Verzeichnis nach dem anwenden von änderungen auf die
config.yml
oder Dateien in derapp/config/
Verzeichnis.Wie bereits erwähnt in den Kommentaren:
Sie brauchen, um vorübergehend stoppen Sie alle PHP-Prozesse, die möglicherweise mit dem prod-Verzeichnis (d.h. wenn Sie schon lief console-server:laufen) und versuchen Sie es erneut. Wenn Sie das nicht tun, versuchen Sie diese
App/MyBundle/Entity/EntityName
und in der config habe ichauto_mapping: true
- funktioniert wie ein Charme. Sie müssen noch den cache zu löschen, nach dem anwenden der änderung, aber.Es stellt sich heraus, dass mein Fehler war, dass ich vergaß hinzuzufügen, entfernte bundles/bundles "Verkäufer" in meinem AppKernel-Datei.
Sie waren nicht registriert in der "registerBundles" - Funktion.