¿Por qué recibo “validador no” uno un salvamento con Doctrina de Symfony 1.2?
Pregunta
Vamos a decir que tengo YAML esquema con ese aspecto:
Note:
options:
type: MyISAM
collate: utf8_unicode_ci
charset: utf8
actAs: { Timestampable: ~ }
columns:
content: { type: string, notnull: true}
order_id: int(5)
user_id : int
relations:
User:
foreignAlias: Notes
local: user_id
foreign: id
type: one
foreignType: man
onDelete: CASCADE
Cuando se realiza:
$note->setOrderId(0);
$note->save();
Estoy recibiendo el siguiente error:
1 validator failed on order_id (type)
tienda MySQL ORDER_ID como bigint (20).
Estoy usando Ubuntu 9.10, Symfony 1.2, PHP 5 y MySQL 5.
EDIT:
¿Tienes una sugerencia, si quito toda mención del tamaño en el archivo YAML, aparece un segundo error de validación para order_id (tamaño): -)
Solución
lo tengo. La sustitución de "int" por "entero" y deshacerse del tamaño hizo el truco. Ahora el archivo YAML se ve así:
Note:
options:
type: MyISAM
collate: utf8_unicode_ci
charset: utf8
actAs: { Timestampable: ~ }
columns:
content: { type: string, notnull: true}
order_id: integer
user_id : integer
relations:
User:
foreignAlias: Notes
local: user_id
foreign: id
type: one
foreignType: man
onDelete: CASCADE
He intentado que debido a otras personas en la red tenían errores similares, resuelto en sustitución de "varchar" con "cadena".
Si alguien se atascan en eso y leer esta respuesta, tomar una cerveza en sus nombres: -)
Otros consejos
Sé que esto es viejo ...
Sólo pensé que podría aclarar que la doctrina válida tipos son "entero", "cadena", "flotar", "decimal", "objeto", "CLOB", "blob", "enumeración", "matriz".
Doctrina luego se traduce el tipo doctrina en el tipo de base de datos correcta para el motor elegido.
Es por eso que "int" falló el validador tipo, pero "entero" funciona.