query foreign entitymanagerinterface symfony doctrine2

foreign - relation symfony



¿Qué usas en lugar de ENUM en doctrine2? (2)

Normalmente trabajo con enteros mapeados a constantes de clase, como

class MyEntity { const STATUS_INACTIVE = 0; const STATUS_ACTIVE = 1; const STATUS_REFUSE = 2; protected $status = self::STATUS_ACTIVE; }

Eso funciona bastante bien y hace que sea aún más fácil trabajar con lo que llamarías ENUMS en un IDE.

También puede usar un tipo enumerable según lo describe la documentación , pero eso significa que tendrá que definir un tipo personalizado por columna enum. Eso es mucho trabajo sin ningún beneficio real.

También querrás saber por qué no deberías usar enums .

¿Qué usas en lugar de ENUM en Doctrine2? smallint? Pensé en usar varchar, o explícitamente definir char, pero esto puede no ser muy efectivo cuando se trata de índices, ¿o estoy equivocado?


Postgres, Symfony, orm, doctrina ...

  1. Postgress Define new type enum (pgAdmin)

CREATE TYPE new_enum AS ENUM (''triste'', ''ok'', ''feliz'');

  1. En entidad

@ORM / Column (name = "name", type = "string", columnDefinition = "new_enum", nullable = true)

  1. En 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 # <=======