hb-chen/echo-web

InMemoryStore的set和get方法,参数好像不一样

Closed this issue · 0 comments

minfo := MaterialInfo{}
var count int64
db := DB().Where("db_internal_id = ?", id)
if err := Cache(db).First(&minfo).Count(&count).Error; err != nil {
log.Debugf("GetMaterialInfoById error: %v", err)
return nil
}
上面这种写法你们那没问题吗,我的怎么报错
{"time":"2018-12-18T18:14:53.3992271+08:00","level":"-","prefix":"api","file":"recover.go","line":"73","message":"[PANIC RECOVER] reflect.Set: value of type *model.MaterialInfo is not assignable to type model.MaterialInfo goroutine 37 [running]
我在set之前加了以下代码才通过
var value interface{}
v := reflect.ValueOf(out)
value = v.Interface()
if v.Kind() == reflect.Ptr {
p := v.Elem()
value = p.Interface()
}
c.store.Set(key, value, c.Expire)