“Classe de XXX n'est pas une entité valide ou mappé super classe” après le déplacement de la classe dans le système de fichiers
J'ai eu une classe d'entité en Aib\PlatformBundle\Entity\User.php
Je n'avais pas de problèmes en essayant de créer son formulaire de classe au travers de
php app/console doctrine:generate:forme AibPlatformBundle:l'Utilisateur
Maintenant, j'ai modifier l'espace de noms de l'Aib\PlatformBundle\Entity\Identité d'Utilisateur\, mais lorsque je tente de générer le formulaire avec la tâche je l'ai dit avant
il dit:
"Classe Aib\PlatformBundle\Entity\Utilisateur n'est pas valide entité ou mappé
super classe."
C'est le contenu du fichier:
<?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
{
...
Une idée?
symfony2.0.4
- Avez-vous des classes de l'extension de l'Utilisateur pour lequel vous avez oublié de mettre à jour les espaces de noms?
- Autant que je sache, il n'est pas possible de définir des sous-espaces de noms pour vos entités, depuis Symfony va toujours essayer de le résoudre AibPlatformBundle:nom d'Utilisateur: pour Aim\PlatformBundle\Entity\Utilisateur, indépendamment de son espace de noms.
Vous devez vous connecter pour publier un commentaire.
Eu ce problème - n'oubliez pas l'annotation
* @ORM\Entity
comme ci-dessous:Eu ce problème hier et j'ai trouvé ce thread. J'ai créé l'entité avec la cartographie dans un nouveau bundle (par ex. MyFooBundle/Entity/User.php), fait toute la configuration selon les docs mais j'ai reçu le même message d'erreur à partir de ci-dessus lorsque vous essayez de charger l'application.
En fin de compte, j'ai réalisé que je n'étais pas le chargement MyFooBundle dans AppKernel:
Un excellent moyen de déboguer c'est pour exécuter cette commande:
Faire vérifier votre config.fichier yml, devrait être contenant quelque chose comme ceci:
Ajouter votre propre bundle pour la liste de mappages.
Dans mon cas, le problème a été résolu en changeant mes serveurs de cache de eAccelerator à APC.
Apparemment eAccelerator bandes de toutes les observations à partir de fichiers qui rompt vos annotations.
opcache.save_comments=1
, peut-être il y en a un de trop pour eAccelerator/APC?J'ai résolu ce problème en passant
false
comme deuxième paramètre àDoctrine\ORM\Configuration::newDefaultAnnotationDriver
.Il m'a fallu un certain temps de creuser par le biais de Google et le code source.
Mon cas était un peu particulier car j'ai été en utilisant une cartographie pointant vers un autre répertoire sans rapport avec l'installation de Symfony que j'ai également eu à utiliser le code de legs.
J'avais refait l'héritage des entités et ils ont arrêté de travailler. Ils ont l'habitude d'utiliser
@Annotation
au lieu de@ORM\Annotation
, donc après le refactoring, il a simplement omis de lire les métadonnées. En n'utilisant pas une simple annotation lecteur, tout semble être dans les clous.J'ai résolu ce problème en définissant
$useSimpleAnnotationReader=false
lors de la création de laMetaDataConfiguration
.grand merci à Mark Fu et mogoman
Je savais que cela devait être quelque part dans la config.yml... et être capable de le tester contre la
vraiment aidé!
En fait, cette commande s'arrête simplement à une erreur... pas de commentaires, mais quand tout va bien, vous devriez être capable de voir tous vos entités énumérées.
Je résolus de la même exception par la suppression d'un conflit généré automatiquement orm.php fichier dans le bundle de Ressources/config/doctrine dossier; selon la documentation: "Un bundle peut accepter qu'un format de définition des métadonnées. Par exemple, il n'est pas possible de mélanger des YAML définitions de métadonnées avec annoté PHP entité définitions de classe."
Très grande possibilité que vous avez de PHP 5.3.16 (Symfony 2.x ne fonctionnera pas avec elle). De toute façon il est recommandé de charger consultez la page sur http://you.site.name/config.php
Si vous aviez projet n'a pas travaillé sur le serveur d'hébergement, suivant les lignes doivent être supprimés "config.php":
Goodluck!
Dans mon cas, j'ai été trop zélé lors d'une refactoriser et a supprimé une doctrine fichier yml!
Je me suis débarrassé de la même message d'erreur que dans votre cas, à l'aide d'app/console_dev au lieu de simplement app/console