基本上,我解决了将模型作为指针并在将其作为json文件返回后的问题。
所以我的模型如下:
var Models = map[string]interface{}{
"users": new(Users),
"categories": new(Categories),
}
然后按表类型返回一个新模型。我可以用于gorm First()函数。然后将其编组为json,然后返回。
func (o Operation) First(model string, query url.Values) string {
modelStruct := Models[model]
db := o.DB
db.First(modelStruct)
response, _ := json.Marshal(modelStruct)
clear(modelStruct)
return string(response)
}
在返回之前,我清除了模型指针,因为First()函数存储了最新查询的回调。
func clear(v interface{}) {
p := reflect.ValueOf(v).Elem()
p.Set(reflect.Zero(p.Type()))
}