登录
首页 >  Golang >  Go问答

“更新时遇到“字段索引超出范围”的错误引发的恐慌”

来源:stackoverflow

时间:2024-02-20 21:00:23 112浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《“更新时遇到“字段索引超出范围”的错误引发的恐慌”》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我在使用 gorm 进行基本更新时感到恐慌,但找不到任何相关信息。按照 gorm 的文档,我看起来并没有做错事。

module achiever

go 1.15

require (
    gorm.io/driver/postgres v1.0.5
    gorm.io/gorm v1.20.7
)
type task struct {
    id    uint   `json:"id" gorm:"primary_key"`
    title string `json:"title"`
}

type updatetaskinput struct {
    title string `json:"title"`
}

func updatetask(id uint, input updatetaskinput) bool {
    var task task
    if err := models.db.where("id = ?", id).first(&task).error; err != nil {
        return false
    }

    models.db.model(&task).updates(input)

    return true
}
2552864714​​27

我无法弄清楚错误从何而来。


解决方案


我遇到了同样的问题,正如 jugendhacker 所说:你需要在更新函数中构造模型的结构:

models.DB.Model(&task).Updates(&Task{Title: input.Title})

这在 GORM docs 中有所说明,如果您正在构建 api,则将其实现为 put 方法会更合适,因为您传递的是新对象而不是修补现有对象。

以上就是《“更新时遇到“字段索引超出范围”的错误引发的恐慌”》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>