我正在使用Gin创建HTTP服务,试图验证通过HTTP请求接收到的整个查询参数,这是我如何使用BindQuery方法,但是当我尝试使用具有查询参数的URL发送请求时,例如http://localhost:3003/user?id=ck5w9xc5g004d0892zwb07w5p

type QueryUser struct {
   Id string `binding:"required" validate:"regexp=^[a-zA-Z0-9]*$"`
}

func (uhc UserHttpController) UserGet(ctx *gin.Context) {
    var queryUser QueryUser
    if err := ctx.BindQuery(queryUser); err != nil {

    }
}

该程序只是在语句reflect: reflect.flag.mustBeAssignable using unaddressable value上因错误ctx.BindQuery(queryUser)而崩溃

我做错了什么?

最佳答案

调用&时,您需要在&queryUser前面加上BindQuery

type QueryUser struct {
     Id string `binding:"required" validate:"regexp=^[a-zA-Z0-9]*$"`
}

func (uhc UserHttpController) UserGet(ctx *gin.Context) {
   var queryUser QueryUser
   if err := ctx.BindQuery(&queryUser); err != nil {

    }
}

10-07 15:30