从 GORM V1 迁移到 V2 时获取“缺少错误方法”

我目前正在从 GORM V1 迁移到 V2。有相当多的向后兼容性,但我面临以下问题。


config.DB, err = gorm.Open(mysql.Open(config.DBDSN), &gorm.Config{})

    if err != nil {

        panic(err)

    }

上面的代码显示了我如何连接到mySQL数据库。以下函数导致错误。


func (b *Base) AddTags(model interface{}, modelID uint64, tagType models.TagType, tags []models.Tag) error {

    err := b.config.DB.Model(model).Association(tagType.Field()).Append(tags).Error

    if err != nil {

        return err

    }


    return b.updateTagPriority(model, modelID, tagType, tags)

}

错误是


不能使用err(类型func()字符串)作为返回参数中的类型错误:func()字符串未实现错误(缺少错误方法)


我使用 V2 发行说明来重构部分代码,但我无法弄清楚这个特定问题。https://gorm.io/docs/v2_release_note.html我认为V1和V2之间的错误处理可能会有一些重大变化


SMILET
浏览 182回答 1
1回答

UYOU

根据代码,该函数仅返回本机 。Appenderror所以你可以写:err := b.config.DB.Model(model).Association(tagType.Field()).Append(tags)而不是:err := b.config.DB.Model(model).Association(tagType.Field()).Append(tags).Error
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go