sql >> データベース >  >> RDS >> Mysql

現在の構成に従ってマップされたDoctrineORMエンティティはありません

    標準のDoctrine構成セットアップ[1]は、私のコードベース、またはテストしたコードベースでは機能しないことがわかりました。ドキュメントが古くなっている可能性があります。インターウェブを何時間も耕した後、これが最終的に私のために機能するようになった構成です:

    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. CodeIgniter-フォームを介して画像をアップロードし、画像の場所をデータベースに保存します

    2. 以前にメッセージを送信したユーザーのリストを取得する必要があります(MySQL)

    3. Oracle Regexpは、\ n、\ r、および\tをスペースに置き換えます

    4. tomcat7:JDBCドライバークラスをロードできませんでした[com.mysql.jdbc.Driver]