Mudanças entre as edições de "Usando enum com Symfony e Doctrine"

De Basef
Ir para: navegação, pesquisa
 
(Uma revisão intermediária pelo mesmo usuário não estão sendo mostradas)
Linha 9: Linha 9:
 
O mapeamento é feito no arquivo app/config/config.yml. Basta adicionar o seguinte dentro de doctrine.dbal:
 
O mapeamento é feito no arquivo app/config/config.yml. Basta adicionar o seguinte dentro de doctrine.dbal:
  
<source lang="yml">
+
<source lang="ini">
        mapping_types:
+
mapping_types:
            enum: string
+
    enum: string
 
</source>
 
</source>
  
 
Segue abaixo um exemplo de configuração completa da seção doctrine:
 
Segue abaixo um exemplo de configuração completa da seção doctrine:
  
<source lang="yml">
+
<source lang="ini">
 
# Doctrine Configuration
 
# Doctrine Configuration
 
doctrine:
 
doctrine:

Edição atual tal como às 07h35min de 3 de maio de 2016

O Symfony não suporta enums e o seguinte erro é gerado ao tentar executar um comando do doctrine pelo console do Symfony:

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

Para solucionar este problema é necessário mapear o tipo `enum` para `string`. O mapeamento é feito no arquivo app/config/config.yml. Basta adicionar o seguinte dentro de doctrine.dbal:

mapping_types:
    enum: string

Segue abaixo um exemplo de configuração completa da seção doctrine:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   pdo_mysql
        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