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 文档看了一大波,也谷了不少;但是没看到 /解决到我的疑问,可能是刚入门的原因,求解。。。。纠结很久了:(
谢谢