gorm一对一外健关联失效

type Staff struct {
    Id          int       `json:"id"`
    Name        string    `json:"name"`
    PhoneNumber string    `json:"phoneNumber"`
    Email       string    `json:"email"`
    Password    string    `json:"password"`
    IsSuper     int       `json:"isSuper"`
    CreatedAt   time.Time `json:"createdAt"`
    UpdatedAt   time.Time `json:"updatedAt"`
    RoleId      int       `json:"roleId" gorm:"column:roleId"`
    Role        Role      `json:"role" gorm:"foreignKey:RoleId;references:Id"`
}

func (Staff) TableName() string {
    return "staff"
}

type Role struct {
    Id   int    `json:"id"`
    Name string `json:"name"`
}

func (Role) TableName() string {
    return "role"
}

// 这里不能使用 Scan
if err := a.data.db.Table("staff").Where("phoneNumber = ?", phoneNumber).Preload("Role").Find(&res).Error; err != nil {
        return res, err
    }

解决:Scan方法换成 Find 方法即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容