Martini绑定"无法返回从未导出的字段或方法中获得的值"

时间:2015-01-31 10:03:42

标签: go martini

我有以下路线:

m.Post("/users", binding.Bind(models.User{}), func(user models.User, r render.Render)

当我尝试执行Post请求时收到以下错误消息:

  

“PANIC:reflect.Value.Interface:无法返回从未导出的字段或方法中获取的值”

type User struct {
    id         int
    UUID       string    `json:"uuid"`
    Username   string    `json:"userName" form:"userName" binding:"required"`
    Firstname  string    `json:"firstName" form:"Firstname" binding:"required`
    Lastname   string    `json:"lastName" form:"Lastname" binding:"required`
    Email      string    `json:"email" form:"Email" binding:"required`
    IsActive   bool      `json:"isActive"`
    DateJoined time.Time `json:"dateJoined"`
}

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

我现在知道这个问题。

问题是User结构的属性“id”。如果将“id”重命名为“Id”,则绑定过程将完美运行。

使用标记form:"-",您可以忽略结构属性。

type User struct {
    id         int       `form:"-"`
    UUID       string    `json:"uuid"`
    Username   string    `json:"userName" form:"userName" binding:"required"`
    Firstname  string    `json:"firstName" form:"Firstname" binding:"required`
    Lastname   string    `json:"lastName" form:"Lastname" binding:"required`
    Email      string    `json:"email" form:"Email" binding:"required`
    IsActive   bool      `json:"isActive"`
    DateJoined time.Time `json:"dateJoined"`
}