Мартини Биндинг "не может вернуть значение, полученное из неэкспортированного поля или метода"
У меня есть следующий маршрут:
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"`
}