1

我目前正在将遗留应用程序迁移到 symfony2,问题是我有很多 mysql 枚举列,我知道学说不支持枚举数据类型,一种解决方法是存储为字符串,但我真的会失去正确排序数据的能力,因为 varchars 要慢得多,我确实有很多具有枚举数据类型的表,并且修改架构真的很难,我有什么选择?你有什么建议可以更顺利地过渡到 symfony2?

4

2 回答 2

3

试试这个它对我有用

http://symfony.com/doc/current/reference/configuration/doctrine.html#reference-dbal-configuration

在 app/config/config.yml 文件中添加

    mapping_types:
       enum: string

例如下面

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

那么你可以使用例如

@ORM\Column(type="string", columnDefinition="ENUM('A', 'B')")
于 2012-07-12T15:11:31.257 回答
1

你有两个解决方案

  • 解决方案 1:映射到 Varchars
  • 解决方案 2:定义类型

更多信息请参考此链接:Mysql Enums 学说

于 2012-05-26T03:05:05.587 回答