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 的值才会是广告图片列表

发布了34 篇原创文章 · 获赞 12 · 访问量 6961

猜你喜欢

转载自blog.csdn.net/weixin_45604257/article/details/105080344