gorm关联一对多关系golang

Vidonia ·
更新时间:2024-09-20
· 764 次阅读

user_topic表里的id,关联topic_image表里的topicID,

//用户在发表话题动态的时候,同时发了多张照片, //查询的时候需要从topic_image表查出用户此条动态发布的所有照片。 //是这样子的一对多关系

1.model字段部分(加外键关联外键)

type UserTopic struct { ID int64 `gorm:"primary_key" json:"id"` UserID int64 `json:"user_id"` TopicImgURL string `json:"topic_img_url"` //下面这一行是重点 //一对多 TopicImagesList []TopicImage `gorm:"ForeignKey:topic_id;AssociationForeignKey:id" json:"TopicImagesList,omitempty" ` }

ForeignKey:topic_id是指user_topic表关联topic_image表里的topicID,所以此处冒号后填写topic_id
AssociationForeignKey:id冒号后的id是user_topic表的id

//这是topic_image表的字段 type TopicImage struct { Model UserID int64 `json:"user_id"` ImgURL string `json:"img_url"` TopicID int64 `json:"topic_id"` }

2.model函数部分

func (xy *UserTopic ) GetTopicList(adsID int64) (userTopicList []UserTopic ) { tx := Db.Model(&xy).Where("ads_id = ? and status = 1", adsID) //需要预加载 tx = tx.Preload("TopicImagesList") tx.Find(&userTopicList ).RecordNotFound() return userTopicList } 疯狂的鸭血 原创文章 41获赞 13访问量 1万+ 关注 私信 展开阅读全文
作者:疯狂的鸭血



gorm golang

需要 登录 后方可回复, 如果你还没有账号请 注册新账号