问题描述:
写项目代码的时候遇到一个问题,遍历这个切面,然后给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 的值才会是广告图片列表