2015-11-12 1 views
1

J'ai des problèmes avec la superclasse mappée de la doctrine. Lorsque j'exécute la commande symfony:La cartographie de la doctrine ne fonctionne pas correctement

php app/console doctrine:mapping:info

Je reçois ce message d'exception:

 
[Doctrine\Common\Persistence\Mapping\MappingException] 
Class 'DBiagi\EitaBundle\Entity\BaseFoo' does not exist 

La partie étrange est que la classe BaseFoo est pas dans le dossier de l'entité, et cette classe est une superclasse cartographié . Voici mes fichiers:

<?php  
# src/DBiagi/EitaBundle/Model/BaseFoo.php 

namespace DBiagi\EitaBundle\Model; 

/** 
* Description of BaseFoo 
* 
*/ 
abstract class BaseFoo implements BaseFooInterface{ 

    private $id; 
    private $name; 

    public function getId(){ 
     return $this->id; 
    } 

    public function getName(){ 
     return $this->name; 
    } 
} 

La définition de la cartographie:

# src/DBiagi/EitaBundle/Resources/doctrine/BaseFoo.orm.yml 
DBiagi\EitaBundle\Model\BaseFoo: 
    type: mappedSuperclass 
    fields: 
     id: 
      id: 
       type: integer 
       id: true 
       generator: 
        strategy: AUTO 
     name: 
      type: string 
      length: 255 

Notez que la classe DBiagi \ EitaBundle \ Entité \ BaseFoo n'existe pas, en fait, et la vie classe BaseFoo dans le dossier du modèle , alors la question est: Pourquoi la doctrine essaie de charger cette classe? Je ne peux pas faire correspondre mes entités à cause de cette exception. Une aide sera très appréciée. Merci.

Répondre

1

Vous devez définir un espace de noms correct pour les entités de votre ensemble dans la configuration principale de l'application. Supposons que vous utilisez la configuration yml, comme:

orm: 
    entity_managers: 
     default: 
      mappings: 
       DBiagiEitaBundle: 
        prefix: DBiagi\EitaBundle\Model 
+0

Merci de me pointer dans la bonne direction. Dans la section de doctrine de la [documentation de symfony] (http://symfony.com/doc/current/reference/configuration/doctrine.html) il y a un tutoriel montrant comment changer le dossier d'entité par défaut. Thats a résolu mon problème. Merci. – dbiagi