type Article struct {
ID int `gorm:"primary_key" json:"id"`
TagID int `json:"tag_id"`
Tag Tag `json:"tag"`
...
}
type Tag struct {
ID uint `gorm:"primary_key" json:"id"`
Name string `json:"name"`
...
}
func GetArticle(id int) (article Article) {
db.Where("id = ?", id).First(&article)
db.Model(&article).Related(&article.Tag)
return
}
现在问题是,单个查询可以,
但是假设是使用Find
呢,Related
那句关联查询,显然有问题,因为article
已经是多个了,应该如何写??
1、循环的话应该不可能吧???
2、JOIN 查询构造器,应该可以实现,但是要把关联的字段也定义在结构体上(感觉不大好,而且属于绕过当前问题)
func GetArticles(id int) (article []Article) {
db.Where("id = ?", id).Find(&article)
//注,这里的关联查询就显然有问题了,此处应该如何改写?
db.Model(&article).Related(&article.Tag)
return
}
ps: Gorm 文档看了一大波,也谷了不少;但是没看到 /解决到我的疑问,可能是刚入门的原因,求解。。。。纠结很久了:(
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.