J'avais une classe d'entité dans Aib \ PlatformBundle \ Entity \ User.php
Je n'ai eu aucun problème à essayer de créer sa classe de formulaire via
doctrine php app / console: generate: form AibPlatformBundle: Utilisateur
Maintenant, j'ai changé l'espace de noms en Aib \ PlatformBundle \ Entity \ Identity \ User, mais lorsque j'essaie de générer le formulaire avec la tâche, j'ai dit avant cela dit:
"La classe Aib \ PlatformBundle \ Entity \ User n'est pas une entité valide ou une super classe mappée."
Voici 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
php
symfony
doctrine-orm
ziiweb
la source
la source
Réponses:
Eu ce problème - n'oubliez pas l'annotation
* @ORM\Entity
comme ci-dessous:la source
Eu ce problème hier et a trouvé ce fil. J'ai créé l'entité avec le mappage dans un nouveau bundle (par exemple MyFooBundle / Entity / User.php), fait toute la configuration selon les documents mais j'ai eu la même erreur d'en haut en essayant de charger l'application.
En fin de compte, j'ai réalisé que je ne chargeais pas MyFooBundle dans AppKernel:
Un excellent moyen de déboguer ceci est d'exécuter cette commande:
la source
Vérifiez que votre fichier config.yml devrait contenir quelque chose comme ceci:
Ajoutez votre propre bundle à la liste des mappages.
la source
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 pour fouiller dans Google et le code source.
Mon cas était en quelque sorte spécial car j'utilisais un mappage pointant vers un autre répertoire sans rapport avec l'installation de Symfony car je devais également utiliser du code hérité.
J'avais refactoré les entités héritées et elles ont cessé de fonctionner. Ils utilisaient à la
@Annotation
place de@ORM\Annotation
, donc après la refactorisation, il n'a tout simplement pas pu lire les métadonnées. En n'utilisant pas un simple lecteur d'annotations, tout semble aller bien.la source
Dans mon cas, le problème a été résolu en changeant le cache de mes serveurs d' eAccelerator en APC . Apparemment, eAccelerator supprime tous les commentaires des fichiers qui cassent vos annotations.
la source
opcache.save_comments=1
, peut-être y en a-t-il un aussi pour eAccelerator / APC?J'ai résolu ce problème en définissant
$useSimpleAnnotationReader=false
lors de la création du fichierMetaDataConfiguration
.la source
gros merci à Mark Fu et mogoman
Je savais que ça devait être quelque part dans le config.yml ... et pouvoir le tester contre le
vraiment aidé!
En fait, cette commande s'arrête simplement à une erreur ... pas de retour, mais quand tout va bien, vous devriez pouvoir voir toutes vos entités répertoriées.
la source
J'ai résolu la même exception en supprimant un fichier orm.php généré automatiquement en conflit dans le dossier Resources / config / doctrine du bundle; selon la documentation: "Un bundle ne peut accepter qu'un seul format de définition de métadonnées. Par exemple, il n'est pas possible de mélanger des définitions de métadonnées YAML avec des définitions de classe d'entité PHP annotées."
la source
Très grande possibilité que vous ayez PHP 5.3.16 (Symfony 2.x ne fonctionnera pas avec lui). Quoi qu'il en soit, vous devriez charger la page de vérification sur http://you.site.name/config.php Si vous aviez un projet non travaillé sur le serveur d'hébergement, les lignes suivantes doivent être supprimées dans "config.php":
Bonne chance!
la source
Dans mon cas, j'étais trop zélé lors d'un refactor et j'avais supprimé un fichier doctrine yml!
la source
Dans mon cas sur mon mac, j'utilisais src / MainBundle / Resource / Config / Doctrine, bien sûr, cela fonctionnait sur Mac mais cela ne fonctionnait pas sur le serveur de production Ubuntu. Une fois renommé Config en config et Doctrine en doctrine, les fichiers de mappage ont été trouvés et cela a commencé à fonctionner.
la source
Je me suis débarrassé du même message d'erreur que dans votre cas en utilisant app / console_dev au lieu de simplement app / console
la source