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 ...
- Postgress Define new type enum (pgAdmin)
CREATE TYPE new_enum AS ENUM (''triste'', ''ok'', ''feliz'');
- En entidad
@ORM / Column (name = "name", type = "string", columnDefinition = "new_enum", nullable = true)
- 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 # <=======