Warum erhalte ich „Validator nicht bestanden“ ein ein mit Lehre auf Symfony 1.2 zu retten?

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

  •  06-09-2019
  •  | 
  •  

Frage

Lassen Sie uns sagen, dass ich YAML Schema haben suchen wie folgt aus:

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

Bei der Durchführung:

$note->setOrderId(0);
$note->save();

Ich erhalte die folgende Fehlermeldung:

1 validator failed on order_id (type)

MySQL Speicher ORDER_ID als bigint (20).

Ich bin mit Ubuntu 9.10, Symfony 1.2, PHP 5 und MySQL 5.

EDIT:

einen Hinweis erhalten, wenn ich alle Hinweise auf die Größe in der YAML-Datei entfernen, erhalte ich einen zweiten Validierungsfehler für order_id (Länge): -)

War es hilfreich?

Lösung

Ich habe es. Ersetzen „int“ durch „integer“ und von der Größe loszuwerden hat den Trick. Nun ist die YAML-Datei wie folgt aussieht:

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

Ich hat versucht, dass, weil andere Leute auf dem Netz ähnlichen Fehler hatten, gelöst zu ersetzen „varchar“ mit „string“.

Wenn jemand in dem stecken und diese Antwort lesen, ein Bier in ihrem Namen: -)

Andere Tipps

Ich weiß, das ist alt ...

Ich dachte nur, ich könnte, dass gültige Lehre klären Typen "integer", "string", "float", "dezimal", "Objekt", "clob", "blob", "Enum", "Array" sind.

Lehre übersetzt dann die Lehre Art in den richtigen Datenbanktyp für das gewählte Backend.

Das ist, warum "int" den Typ-Validator ist fehlgeschlagen, aber "integer" funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top