爱摸鱼的Demon
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

爱摸鱼的Demon

我的地盘,欢迎光临。
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • C#

  • Golang

    • Go

    • Gin

    • GORM

      • Gorm初始化
      • Gorm之增删改查
      • Gorm之查询进阶版
      • Gorm之根据外键关联表
        • 1、初始化表
        • 2、查询时获取对应的表格数据
      • Gorm之关联进阶版
      • Gorm之事务
  • 后端技术
  • Golang
  • GORM
DemonW-X
2025-11-13
目录

Gorm之根据外键关联表

有一个article表:

和articlecate表:

其中article.cate_id为外键

# 1、初始化表

//article.go
type Article struct {
	Id    int
	Title string
	//ArticleCateId int //默认创建外键时按照表名+id显示
	CateId int //自定义外键
	State  int
	//关联表
	//ArticleCate ArticleCate `gorm:"foreignkey:CateId"` //外键名称指定
}

func (Article) TableName() string {
	return "article"
}

//articlecate.go
// references主键 默认id 如果主键为id可以不配置
// foreignkey外键 默认表名字+id 如果外键为表名字+id可以不配置
type ArticleCate struct {
	Id      int
	Title   string
	State   int
	Article []Article `gorm:"foreignkey:CateId;references:Id"`
}

func (ArticleCate) TableName() string {
	return "article_cate"
}

//controller.go
type ArticleController struct {
	user.BaseController
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 2、查询时获取对应的表格数据

func (con ArticleController) IndexArticleCate(c *gin.Context) {
	articleCateList := []models.ArticleCate{}
	//查询全部数据
	//models.DB.Find(&articleList)

	//查询文章分类时获取分类对应的文章
	models.DB.Preload("Article").Find(&articleCateList)

	c.JSON(http.StatusOK, gin.H{
		"result": articleCateList,
	})
}
1
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)
Gorm之查询进阶版
Gorm之关联进阶版

← Gorm之查询进阶版 Gorm之关联进阶版→

最近更新
01
Gorm之事务
11-13
02
Gorm之关联进阶版
11-13
03
Gorm之查询进阶版
11-13
更多文章>
Theme by Vdoing | Copyright © 2022-2025 爱摸鱼的Demon | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式