2015-01-31 1 views
1

У меня есть следующий маршрут:Martini Binding «не может возвращать значение, полученные из неэкспортируемого поля или методы»

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

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

"ПАНИКА: 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"` 
} 

Есть ли у кого-нибудь идеи?

ответ

0

Я знаю проблему сейчас.

Проблема заключается в атрибуте «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"` 
}