【发布时间】:2021-05-05 01:44:51
【问题描述】:
type listParams struct {
Status int `form:"status"`
Keyword string `form:"keyword"`
ShowType int `form:"show_type"`
}
func List(c *gin.Context) {
var ReqData listParams
_ = c.ShouldBind(&ReqData)
// I fetch this by PostForm() to check it empy if it equal to empty string
if stat := c.PostForm("status"); stat == "" {
ReqData.Status = -99
}
// .......
}
在这段代码中,我怎么知道status 是不是前端帖子?
由于go的默认值,如果我检查reqData.Status == 0,如果前端没有发布它总是会返回true,但在我的情况下,0是一个有意义的值,所以我无法通过等于0 来检查它。
那么我有其他方法来检查它吗?
PS:我试过发现gorm如果我不赋值就不会更新struct中的字段:
var d &User{} // User is a definition of user table
d.ID = 1
d.Name = "Joy"
// d.Status = 1 // It has this field, but I dont assign it
db.Model(&User{}).updates(&d)
最后,status 不会更新为0(在我的理解中,d.Status 应该是0)
【问题讨论】: