Symfony2 Error: No mapping file found named Symfony2 Error: No mapping file found named symfony symfony

Symfony2 Error: No mapping file found named


You are mixing Doctrine mapping formats, you have annotations and at least one XML file in Resources/config/doctrine

From the symfony docs:

"A bundle can accept only one metadata definition format. For example,it's not possible to mix YAML metadata definitions with annotated PHPentity class definitions."

So the solution is:

You cannot mix different Doctrine mapping formats in a given bundle. So either use annotations for all entities or use XML for all.


It is somehow strange to me that you're using PHPDriver for ORM and not AnnotationDriver, since your database info in classes is in annotations.

Anyhow, if php app/console doctrine:mapping:info command gives you only 1 entity that means that your other bundle containing User class is not loaded in app/AppKernel.php file. Load your UserBundle by adding line

new xxx\UserBundle\xxxUserBundle(),

to the $bundles array in registerBundles() function. After that, this function should look something like this:

public function registerBundles(){    $bundles = array(        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),        new Symfony\Bundle\SecurityBundle\SecurityBundle(),        new Symfony\Bundle\TwigBundle\TwigBundle(),        new Symfony\Bundle\MonologBundle\MonologBundle(),        new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),        new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),        new Symfony\Bundle\AsseticBundle\AsseticBundle(),        new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),        new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),        new xx\FileBundle\xxFileBundle(),        new xxx\UserBundle\xxxUserBundle(),    );    if (in_array($this->getEnvironment(), array('dev', 'test'))) {        $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();        $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();        $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();    }    return $bundles;}

Of course, change 'xx' and 'xxx' with your real names.

Hope this helps.


I agree with @ilanco 100%. In addition, the solution is to REMOVE any .xml file in folder, for example:

C:\xampp\htdocs\localxyz\src\AppBundle/Resources/config/doctrine/Comment.orm.xml

these xml files created when you run such command:

C:\xampp\htdocs\localxyz>php app/console doctrine:mapping:import --force AppBundle xml

Dung.