Мартини Биндинг "не может вернуть значение, полученное из неэкспортированного поля или метода"

У меня есть следующий маршрут:

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

И я получаю следующее сообщение об ошибке при попытке сделать Post запрос:

"ПАНИКА: refle.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 ответ

Теперь я знаю проблему.

Проблема заключается в атрибуте "id" структуры User. Если "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"`
}
Другие вопросы по тегам