我将HTML表单传递给Go中的控制器。我正在工作boilerplate自学Go,它包括表单验证。相关陈述已经从样板中的原始外观略有改变,如下:
if err := c.ShouldBindWith(&signinForm, binding.Form); err != nil {
log.Println("err: ",err)
c.JSON(406, gin.H{"message": "Invalid signin form", "form": signinForm})
c.Abort()
return
}
err
记录为Key: 'SigninForm.Email' Error:Field validation for 'Email' failed on the 'email' tag
。
特别是,我真的不知道c.ShouldBindWith(&signinForm, binding.Form)
做了什么(其他人就我之前的signinForm
问题是空的,它已解决了)。
如何正确验证表单字段以便err == nil
?
答案 0 :(得分:0)
我能够使用shouldBind
bindError := c.ShouldBind(&signinForm, binding.Form)
if bindError != nil {
log.Println("err: ",err)
c.JSON(406, gin.H{"message": "Invalid signin form", "form": signinForm})
return
}