45 votes

Qu'utilisez-vous à la place d'ENUM dans la doctrine2 ?

Qu'utilisez-vous à la place d'ENUM dans Doctrine2 ? smallint ? J'ai pensé à utiliser varchar, ou définir explicitement char, mais cela peut ne pas être très efficace quand il s'agit d'index, ou suis-je mal ?

14voto

websky Points 2564

Postgres, Symfony, ORM, Doctrine...

  1. Postgres : Définir un nouveau type enum (pgAdmin)

    CREATE TYPE new_enum AS ENUM ('sad', 'ok', 'happy');
    
  2. Entité

    @ORM\Column(name="name", type="string", columnDefinition="new_enum", 
    nullable=true)
    
  3. Dans config.yml

    mapping_types:
        new_enum: string
    

     

    # 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:
                new_enum: string # <=======
    

5voto

Nanocom Points 1664

Je pense que vous avez besoin de ce livre de cuisine (tiré de la documentation officielle Doctrine) : http://www.doctrine-project.org/docs/orm/2 .1/fr/cookbook/ mysql-enums.html C'est exactement votre problème et il donne 2 solutions. Choisis le tien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X