Perché mi appare “validator non riuscita” uno un salvataggio con Doctrine su Symfony 1.2?
Domanda
Diciamo che ho YAML schema che sembra che:
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
Quando si esegue:
$note->setOrderId(0);
$note->save();
sto ottenendo il seguente errore:
1 validator failed on order_id (type)
MySQL negozio ORDER_ID come bigint (20).
Sto usando Ubuntu 9.10, Symfony 1.2, PHP 5 e MySQL 5.
EDIT:
Hai un suggerimento, se tolgo ogni menzione della dimensione del file YAML, ottengo un secondo errore validatore per order_id (lunghezza): -)
Soluzione
I got it. Sostituzione "int" con "intero" e sbarazzarsi delle dimensioni ha fatto il trucco. Ora il file YAML appare come:
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
Ci ho provato, perché altre persone sulla rete avevano errori simili, risolto sostituendo "varchar" con "stringa".
Se qualcuno si blocca in quella e leggere questa risposta, bere una birra nel loro nome: -)
Altri suggerimenti
So che questo è vecchio ...
ho pensato che potrebbe chiarire che dottrina valida tipi sono "integer", "stringa", "float", "decimale", "oggetto", "clob", "blob", "enum", "matrice".
Dottrina traduce poi il tipo di dottrina nel tipo database corretto per il backend selezionato.
Ecco perché "int" non è riuscito il tipo di validatore, ma "integer" funziona.