Páginas

11 de dezembro de 2009

Definir tipo Enum com Doctrine

Utilizando o Doctrine podemos definir facilmente o tipo Enum para qualquer classe.

Para que tal seja possível temos que acrescentar o atributo use_native_enum no nosso ficheiro de configuração da base de dados em config/databases.yml:

all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: 'mysql:host=localhost;dbname=symfony12doctrine'
username: user
attributes:
use_native_enum: true
Agora, no ficheiro config/doctrine/schema.yml:
Contact:
columns:
id: { type: integer(4), primary: true, autoincrement: true }
name: { type: string(255) }
gender:
type: enum
values: ['M','F']
default: M

E o resultado em SQL será algo do género:
CREATE TABLE `contact` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`gender` enum('M','F') COLLATE utf8_unicode_ci DEFAULT 'M',
PRIMARY KEY (`id`)
) ENGINE=InnoDB

Para mais informações sobre os data types suportados pelo Doctrine/Sql sigam este link:

http://www.symfony-project.org/doctrine/1_2/en/04-Schema-Files

Nenhum comentário:

Postar um comentário