orm.Fielder介面問題

eric發表於2016-11-01
哪位大神幫我看下這是我實現的那個orm.Fielder介面客戶端總是返回"Ctime": {},

這是模型Order {
    ...
    Ctime            JSONTIME `orm:type(datetime)`
    ...
}
type JSONTIME time.Time

const ctLayout = "2006-01-02 15:04:05"

func (t JSONTIME) Value() time.Time {
    return time.Time(t)
}

func (t *JSONTIME) Set(v time.Time) {
    *t = JSONTIME(v)
}

func (t *JSONTIME) String() string {
    return t.Value().Format(ctLayout)
}

func (t *JSONTIME) FieldType() int {
    return orm.TypeDateTimeField
}

func (t *JSONTIME) SetRaw(value interface{}) error {
    switch d := value.(type) {
    case time.Time:
        t.Set(d)
    case string:
        //loc, _ := time.LoadLocation("Local")
        tmp, _ := time.Parse(ctLayout, d)
        t.Set(tmp)
    default:
        return fmt.Errorf("<JSONTIME.SetRaw> unknown value `%v`", value)
    }
    return nil
}

func (t *JSONTIME) RawValue() interface{} {
    return t.String()
}

更多原創文章乾貨分享,請關注公眾號
  • orm.Fielder介面問題
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章