gorm更新部分字段

143 阅读1分钟

代码:

type Message struct {
	gorm.Model
	Title   string `json:"title"`
	Content string `json:"content"`
}

/*6.修改留言*/
func UpdateInfo(c *gin.Context) {

	var data Message
	c.ShouldBindJSON(&data)

	result := db.Select("UpdateAt", "Title", "Content").Save(&data)

	if result.Error != nil {
		// 处理更新错误
		fmt.Println("更新用户出错:", result.Error)
	} else {
		fmt.Println("更新用户成功")
	}

}

注意: 由于结构体中使用了gorm.Model,在更新操作中应该选择部分字段进行更新(使用Select方法进行字段选择),否则CreatAt字段会报错。因为在创建信息的时候,结构体实例化的ID为0,为插入操作,CreatAt字段可以正确生成时间,但是在更新操作中,CreatAt则不会重新生成信息,会返回一个0000-00-00的值,必须排除掉。