使用gorm插入时,如何从结构中跳过特定字段
我试图为用户注册创建一个RESTAPI,在该API上有一个名为“性别”的字段,所以我将该字段作为Struct接收,但在用户表上没有“性别”字段。使用gorm插入时,是否可以从结构中跳过“性别”字段 这是我的数据模型使用gorm插入时,如何从结构中跳过特定字段,go,struct,go-gorm,Go,Struct,Go Gorm,我试图为用户注册创建一个RESTAPI,在该API上有一个名为“性别”的字段,所以我将该字段作为Struct接收,但在用户表上没有“性别”字段。使用gorm插入时,是否可以从结构中跳过“性别”字段 这是我的数据模型 package DataModels type User struct { Id uint `json:"id"` Otp int `json:"otp"` UserId s
package DataModels
type User struct {
Id uint `json:"id"`
Otp int `json:"otp"`
UserId string `json:"user_id"`
UserType string `json:"user_type"`
FullName string `json:"full_name"`
MobileNo string `json:"mobile"`
Email string `json:"email"`
Gender string `json:"gender"` // I want to skip this filed while inserting to users table
Password string `json:"password"`
}
func (b *User) TableName() string {
return "users"
}
这是我的控制器功能
func CreateUser(c *gin.Context) {
var user Models.User
_ = c.BindJSON(&user)
err := Models.CreateUser(&user) // want to skip that gender filed while inserting
if err != nil {
fmt.Println(err.Error())
c.AbortWithStatus(http.StatusNotFound)
} else {
c.JSON(http.StatusOK, user)
}
}
这是我用于插入的模型函数
func CreateUser(user *User) (err error) {
if err = Config.DB.Create(user).Error; err != nil {
return err
}
return nil
}
GORM允许您忽略带有标记的字段,请使用
GORM:“-”
忽略该字段
type User struct {
...
Gender string `json:"gender" gorm:"-"` // ignore this field when write and read
}
关于的官方文档详细信息答案是总是忽略性别,而不仅仅是在创建时
如果我是正确的,您希望跳过注册中的性别字段。你可以用它
db.Omit("Gender").Create(&user)