問題描述:
寫項目代碼的時候遇到一個問題,遍歷這個切面,然後給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 的值纔會是廣告圖片列表