No mapped Doctrine ORM entities according to the current configuration

前端 未结 4 1831
闹比i
闹比i 2021-02-04 19:31

I\'ve got a dubious issue. I have a set of existing annotated Doctrine entities which have been successfully used in a Symfony2/Doctrine2 project. However, I\'m currently isolat

4条回答
  •  心在旅途
    2021-02-04 19:50

    It turns out that the standard Doctrine config set up [1] doesn't work with my code base, or any code base I have tested with, maybe the docs are outdated. After ploughing through the Interwebs for hours, this is the configuration that finally made it work for me:

    use Doctrine\ORM\Tools\Setup;
    use Doctrine\ORM\EntityManager;
    use Doctrine\Common\Annotations\AnnotationReader;
    
    $paths = array( realpath(__DIR__."/../src/My/Entity") );
    $isDevMode = TRUE;
    
    // the connection configuration
    $dbParams = array(
        'driver'   => 'pdo_mysql',
        'user'     => 'myuser',
        'password' => 's3cr3t',
        'dbname'   => 'mydb',
    );
    
    $cache = new \Doctrine\Common\Cache\ArrayCache();
    
    $reader = new AnnotationReader();
    $driver = new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($reader, $paths);
    
    $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
    $config->setMetadataCacheImpl( $cache );
    $config->setQueryCacheImpl( $cache );
    $config->setMetadataDriverImpl( $driver );
    
    $entityManager = EntityManager::create($dbParams, $config);
    
    //-- This I had to add to support the Mysql enum type.
    $platform = $entityManager->getConnection()->getDatabasePlatform();
    $platform->registerDoctrineTypeMapping('enum', 'string');
    

    [1] http://docs.doctrine-project.org/en/latest/tutorials/getting-started.html

提交回复
热议问题