2016-04-08 10 views
0

私はエンティティを生成するデータ・ベースから私はこのエラーを持っています。事前に不明なデータベース型の列挙型、教義

おかげ

+0

ENUMデータベース型をDoctrine型に変換します。とにかく、回避策はほとんどありません。 enumについては、[公式ドキュメント](https://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/cookbook/mysql-enums.html)を参照してください。 – edigu

答えて

0

あなたのenum

$em = $e->getApplication()->getServiceManager()->get('Doctrine\ORM\EntityManager'); 
$platform = $em->getConnection()->getDatabasePlatform(); 
$platform->registerDoctrineTypeMapping('enum', 'string'); 
0

は、次の行を追加し、文字列のように治療するための教義を伝えるために、あなたのModule.phponBootstrapモジュールでこのような何かをしようとすることができ、あなたのbootstrap.phpの

$entityManager->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string'); 
0

本当にあなたの場合列挙型で作業したいし、文字列に変換しない場合は、カスタムタイプを実装する必要があります(これは大きな問題ではありません)。 enter link description here

また、には、のタイプがあります。 それをするので、最も簡単な方法 - 役に立たない方法\教義\ DBAL \タイプを上書きする\タイプ::ようなので、あなた自身でgetMappedDatabaseTypes:

class EnumType extends Type 
{ 
    const NAME = "enum"; 

    // ... (your implemented methods) 

    public function getMappedDatabaseTypes(AbstractPlatform $platform) 
    { 
     return ['enum']; 
    } 
} 

Doctrineはマップされません楽しんで:)