sql >> Databasteknik >  >> RDS >> Mysql

Inga mappade Doctrin ORM-entiteter enligt den aktuella konfigurationen

Det visar sig att standardinställningen för Doctrine config [1] inte fungerar med min kodbas, eller någon kodbas jag har testat med, kanske dokumenten är föråldrade. Efter att ha plöjt igenom Interwebs i timmar, är det här konfigurationen som till slut fick det att fungera för mig:

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



  1. Generera enheter från databasen

  2. MySQL-utlösare om villkoret finns

  3. Hur skapar man en generisk enhetsmodellklass som stöder generiska id inklusive autogenererade id?

  4. Installera MySQL JDBC-drivrutiner i Pentaho Data Integration och BA Server-verktyg