【问题标题】:Err: reflect.flag.mustBeAssignable using unaddressable value as I try to use BindQuery method错误:reflect.flag.mustBeAssignable 在我尝试使用 BindQuery 方法时使用不可寻址的值
【发布时间】:2020-01-28 22:44:47
【问题描述】:

我正在使用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 {

    } 
}

程序在声明 ctx.BindQuery(queryUser) 时因错误 reflect: reflect.flag.mustBeAssignable using unaddressable value 而崩溃

我做错了什么?

【问题讨论】:

  • 为什么要投反对票?

标签: http go query-parameters


【解决方案1】:

在调用BindQuery 时,您需要前缀& 并传递&queryUser

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 {

    } 
}

【讨论】:

    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多