Neden "onaylayıcısı başarısız oldu" alıyorum

2 Cevap php

Diyelim ki YAML düzeni böyle bakıyor olduğunu varsayalım:

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

Yaparken:

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

Ben şu hatayı alıyorum:

1 validator failed on order_id (type)

MySQL mağaza bigint (20) olarak ORDER_ID.

Ben Ubuntu 9.10, Symfony 1.2, PHP 5 ve MySQL 5 kullanıyorum.

EDIT:

Ben YAML dosyasında boyutu her söz kaldırırsanız, bir ipucu, ben order_id (uzunluğu) için ikinci bir validator hatası alıyorum var :-)

2 Cevap

Ben hallederim. Trick yaptı "tamsayı" tarafından "int" Değiştirilmesi ve büyüklüğüne kurtulmak. Şimdi YAML dosya gibi görünüyor:

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

Ben net üzerinde başka insanlar da benzer hatalar vardı çünkü, "string" ile "varchar" yerine çözdüğünü çalıştı.

Birisi o içine sıkışmış ve bu cevabı okumak alırsanız, :-) isimlerinde bir bira var

Ben bu eski olduğunu biliyorum ...

Ben sadece bu geçerli bir doktrin türleri "tamsayı", "string", "emniyet", "ondalık", "nesne", "CLOB", "boya", "enum", "dizi" olduğunu açıklamak düşündüm.

Doktrin sonra seçilen arkaplanı için doğru veritabanı türü içine doktrin türünü çevirir.

"Int" tipi onaylayıcıyı başarısız, ama "tamsayı" eserler neden Thats.