为了账号安全,请及时绑定邮箱和手机立即绑定

如何在使用 gorm 插入时跳过结构中的特定字段

如何在使用 gorm 插入时跳过结构中的特定字段

Go
侃侃尔雅 2022-07-11 10:48:23
我试图为用户注册创建一个休息 API,在该 api 上有一个名为“gender”的字段,所以我将该字段作为 Struct 接收,但在用户表上没有“gender”字段。使用gorm插入时是否可以从结构中跳过“性别”字段?这是我的数据模型package DataModelstype 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}
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

GORM允许你忽略带有标签的字段,gorm:"-"用来忽略字段


type User struct {

    ...

    Gender   string `json:"gender" gorm:"-"` // ignore this field when write and read

}

有关字段级权限的官方文档详细信息


查看完整回答
反对 回复 2022-07-11
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

Eklavyas Answer 总是省略性别,而不仅仅是在 Create 上。

如果我是正确的,您想跳过注册中的性别字段。您可以为此使用Omit

db.Omit("Gender").Create(&user)


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 801 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信