Symfony erreur de La classe XXX n'a pas été trouvé dans la chaîne configuré espaces de noms XXX
Il y a d'autres questions sur ce sujet déjà, mais aucun d'entre eux ont été vraiment utiles. Je suis nouveau sur Symfony, donc c'est assez dur à obtenir ma tête autour de lui.
Je suis dans le fichier Client\IntranetBundle\LDAP\LDAPAuthenticationProvider.php et ce code provoque une erreur:
$user = new LDAPUser($username);
J'ai fait ajouter de l'espace de nom qui est:
use Client\IntranetBundle\LDAP\LDAPUser;
LDAPUser implémente UserInterface
L'erreur que j'obtiens est
The class 'Client\IntranetBundle\LDAP\LDAPUser' was not found in the chain
configured namespaces Client\ClientBundle\Entity
Ce que c'est que de supposer que la moyenne? De ce que j'ai lu il y a quelque chose à voir avec la cartographie.
Mon orm Doctrine dans la config.yml:
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
J'espère que vous pourrez m'aider.
EDIT #1:
En fait, j'ai trouvé qu'il n'était pas
$user = new LDAPUser($username);
Qui est à l'origine de l'erreur, mais c'est quand je suis en train de persister cette entité:
$entityManager->persist($user);
EDIT #2:
Je suis confus avec ce qui est erroné avec la cartographie:
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="Client\IntranetBundle\LDAP\LDAPUser" table="users" repository-class="Client\ClientBundle\Repository\UserRepository">
<id name="id" type="integer" column="id">
<generator strategy="AUTO" />
</id>
<field name="username" column="username" type="string" length="100" />
</entity>
C'est peut-être parce que je suis le saut entre les deux faisceaux?
OriginalL'auteur | 2014-04-02
Vous devez vous connecter pour publier un commentaire.
Par défaut, le
auto_mapping
porte que pour les entités sous leEntity
espace de noms, donc, étant donné que votre entité n'est pas là, la Doctrine ne sait rien à ce sujet.Vous avez besoin de mettre votre entité en vertu de la
Entity
espace de noms ou de configurer la Doctrine à la main pour ajouter votre entité personnalisée de l'espace de noms. De cette façon, vous perdez laauto_mapping
fonctionnalité, vous devez enregistrer chaque bundle manuellement:Comme vous pouvez le voir, il est préférable de tout mettre sous le
Entity
espace de noms dans votre bundle et laissez-la Doctrine de faire le travail.Lorsqu'une exception comme celle qui est jeté, la Doctrine va vider toutes les configure les espaces de noms, essentiellement comme un outil de débogage. Comme vous n'avez qu'un bundle enregistré, vous n'avez qu'une entité de l'espace de noms configurés. Vous devriez voir plus une fois que vous avez plusieurs bundles enregistré, étant donné que vous êtes présenté à nouveau avec la même exception.
Non, j'ai deux faisceaux qui sont inscrits dans la AppKernel :/. Je suis toujours confus pourquoi il est à la recherche dans l'Entité dossier d'un autre bundle.
Ah mais vous avez raison, je n'ai pas de toute Entité dans le dossier de IntranetBundle.
Avez-vous des entités dans l'autre bundle? Si vous ne le faites pas, la Doctrine de cours ne va pas ajouter à la configuration des espaces de noms un espace de nom qui n'existe pas.
OriginalL'auteur Alberto Fernández
juste pour aider plus de vous. J'ai été à la recherche partout dans le lieu de corriger cette erreur sur mon projet.
Il s'avère que mon erreur a été que j'ai oublié d'ajouter lointain bundles/bundles dans le "vendeur" à l'intérieur de mon AppKernel fichier.
Ils n'étaient pas inscrits dans la "registerBundles" de la fonction.
J'espère que cela vous aide à vous tous!
OriginalL'auteur aneth101