某天写了一个查询函数,示例:
func QueryRecord() (data *TAction, err error) {
db := DBPool.Table("t_action").Where("id = 1").First(&data)
fmt.Println(db.Error) //输出了error : invalid value
}
原因:对象是指针, 没有真正分配空间,分配一下空间就行了
改成如下:
func QueryRecord() (data *TAction, err error) {
data = &TAction{} //加了这行
db := DBPool.Table("t_action").Where("id = 1").First(&data)
fmt.Println(data, db.Error) //没有报错
}