golang gorm slice指针问题

问题描述:
写项目代码的时候遇到一个问题,遍历这个切面,然后给value.AdsImagesList赋值,在这里打印到控制台显示的赋值成功的,但是返回这个slice就会发现value.AdsImagesList的为null,如下:

func (a *Ads) GetAdsDetailListByUserId(userId int64, row, offset int) (rd []RedAds) {
	t := time.Now().Unix()
	Db.Table("ads").Where("user_id = ? and status=? and (delete_time> ? or delete_time = 0)", userId, 2, t).Offset(offset).Limit(row).Find(&rd)
	for _, value := range rd {
		value.AdsImagesList = (&AdsImages{}).GetAdsImagesListByAdsId(value.Id)
	}

	return rd
}

上面的代码,value.AdsImagesList的结果为null

func (a *Ads) GetAdsDetailListByUserId(userId int64, row, offset int) (rd []*RedAds) {
	t := time.Now().Unix()
	Db.Table("lb_ads").Where("user_id = ? and status=? and (delete_time> ? or delete_time = 0)", userId, 2, t).Offset(offset).Limit(row).Find(&rd)
	for _, value := range rd {
		value.AdsImagesList = (&AdsImages{}).GetAdsImagesListByAdsId(value.Id)
	}

	return rd
}

返回值改为[]*RedAds之后,value.AdsImagesList 的值才会是广告图片列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章