首页 > 解决方案 > 为 struct main 找到无效字段。文章的字段作者

问题描述

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


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
}

但我收到此错误:

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

标签: gogo-gorm

解决方案


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

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

因此,AuthorID字段实际上会为 GORM 突出显示将引用 User 表的 FK 字段。

但是,您可能会考虑在 User 结构中添加到 Articles 的链接,这样您就可以预加载Author(s) 的所有文章。请参阅此处的链接,但将实现留给您尝试。


推荐阅读