php – 如何在Symfony 2/Doctrine中启用ENUMs

当运行doctrine:mapping:import我得到一个错误:

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

看来我需要设置use_native_enum为true一些如何。然而,所有的文档和博客文章都是参考Symfony& 1.4。在Symfony 2中有什么解决方案吗?

最佳答案
对于Symfony 2项目,将其添加到app / config.yml中的doctrine dbal配置:

doctrine:
    dbal:
        mapping_types: 
            enum:       string 

我的完整的doctrine配置看起来像这样:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        mapping_types:
            enum: string
            set: string
            varbinary: string
            tinyblob: text

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true

代码改为here

然后运行:

app / console doctrine:schema:update –force –dump-sql –ansi

转载注明原文:php – 如何在Symfony 2/Doctrine中启用ENUMs - 代码日志