请求未知的数据库类型枚举,Doctrine

时间:2016-04-08 19:10:54

标签: doctrine-orm zend-framework2

当我想从数据库生成实体时,我有这个错误:

Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it

我该如何解决这个问题。

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以尝试在onBootstrap的{​​{1}}模块中执行此类操作,告诉Doctrine将您的Module.php视为字符串

enum

答案 1 :(得分:1)

将以下行添加到 bootstrap.php

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

答案 2 :(得分:0)

如果您真的想使用枚举并且不将它们转换为字符串,那么您应该实现自定义类型(这真的不是什么大问题)。 见enter link description here

但是,您必须扩展您平台上的类型列表。 所以,最简单的方法 - 用你自己的方法覆盖无用的方法\ Doctrine \ DBAL \ Types \ Type :: getMappedDatabaseTypes:

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

    // ... (your implemented methods)

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

玩得开心:)