Perché mi appare “validator non riuscita” uno un salvataggio con Doctrine su Symfony 1.2?

StackOverflow https://stackoverflow.com/questions/926725

  •  06-09-2019
  •  | 
  •  

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): -)

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top