2011-10-26 5 views
6

Estoy tratando de definir una columna en Doctrine 2.1 (usando anotaciones) que se asigna a una columna CHAR de longitud fija en MySQL. Usar fixed = true no hace el trabajo. La anotación¿Qué es la sintaxis para "opciones" en la anotación Doctrine 2.1 @Column?

* @ORM\Column(type="string", length=49, fixed=true, nullable=false) 

que se traduce en un error: "La anotación @ORM \ Columna declarado en la propiedad [nombre aquí] no tiene una propiedad denominada 'fijo' inmobiliaria:. Nombre, tipo, longitud, precisión, scale, unique, nullable, options, columnDefinition ". Así que supongo que el bit "fijo" debe pasar en "opciones". ¿Pero cómo? Revisé la documentación de Doctrine 2.1 y no puedo encontrar nada al respecto.

me trataron

* @ORM\Column(type="string", length=49, options="fixed=true", nullable=false) 

que no resulte en un error, pero se ignora - la columna creada es VARCHAR (49).

Preferiría no usar columnDefinition.

¿Alguna sugerencia?

GRACIAS

Respuesta

7

La sintaxis correcta es la siguiente:

@ORM\Column(type="string", length=49, options={"fixed":true}, nullable=false) 
+3

alguien me diga por qué esto es una información secreta de encontrar. La pregunta tenía dos años ... exactamente cuando necesitaba la información, ¡Dios envió a Patrick aquí hace solo 16 horas para compartir esto conmigo! ¡Gracias! –

0

Adición de un tipo de datos fija a sus anotaciones requerirá una función definida por el usuario en la doctrina. El documentation sobre cómo configurar esto es bastante legible.

También hay una biblioteca de funciones de consulta MySQL en el repositorio DoctrineExtensions de Benjamin Eeberlei que puede ser útil para extender las capacidades nativas de Doctrine para acomodar características específicas de MySQL.

Desafortunadamente no incluye el tipo de datos que está buscando, pero puede ser útil como modelo para configurar lo que necesita. Buena suerte y, por favor, publique si encuentra una solución que funcione para usted.

Cuestiones relacionadas