为结构 main.Article 的字段 Author 找到无效字段

invalid field found for struct main.Article's field Author

我的应用程序中有以下模型:


import "gorm.io/gorm"

type User struct {
    gorm.Model
    Username string
    Password string
    Email    string
    Token    string
}

type Article struct {
    gorm.Model
    Author User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
    Text   string
    views  int
    likes  int
}

但是我收到这个错误:

[错误] 为结构 main.Article 的作者字段找到无效字段,需要为关系定义一个有效的外键,或者它需要实现 Valuer/Scanner 接口

修复相对容易,唯一遗漏的问题已经被错误提示:您没有提供外键约束提示做 GORM。按照官方文档here,我们可以这样简单地做:

type Article struct {
    gorm.Model
    AuthorID uint 
    Author   User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"`
    Text     string
    views    int
    likes    int
}

因此 AuthorID 字段实际上将为 GORM 突出显示将引用用户 table.

的 FK 字段

但是,您可以考虑在 Articles 的 User 结构中添加一个 link,这样您就可以 Preload all articles of Author(s). See the link here,但将实现留给您尝试。