所以我想从comms中的ID中获取所有commPlans,但是由于某种原因,我只能得到一个对象(这是comms中的第一个ID)。
这是我的代码:

comms := models.GetComms(CommID)
if comms == nil {
    componentsJson.WriteError(ctx, componentsError.ERROR_PARAMETERS_INVALID)
    return
}

var commPlans []models.CommPlan
for _, comm := range comms {
    commPlans = models.GetCommPlans(comm.CommPlanID)
}
if commPlans == nil {
    componentsJson.WriteError(ctx, componentsError.ERROR_PARAMETERS_INVALID)
    return
}

最佳答案

您需要使用append将结果从GetCommPlans编码到commPlans slice ,现在您将覆盖以前返回的所有结果。

要么做:

comms := models.GetComms(CommID)
if comms == nil {
    componentsJson.WriteError(ctx, componentsError.ERROR_PARAMETERS_INVALID)
    return
}

// a slice of slices
var commPlans [][]models.CommPlan
for _, comm := range comms {
    commPlans = append(commPlans, models.GetCommPlans(comm.CommPlanID))
}
if commPlans == nil {
    componentsJson.WriteError(ctx, componentsError.ERROR_PARAMETERS_INVALID)
    return
}

或者:
comms := models.GetComms(CommID)
if comms == nil {
    componentsJson.WriteError(ctx, componentsError.ERROR_PARAMETERS_INVALID)
    return
}

var commPlans []models.CommPlan
for _, comm := range comms {
    commPlans = append(commPlans, models.GetCommPlans(comm.CommPlanID)...)
}
if commPlans == nil {
    componentsJson.WriteError(ctx, componentsError.ERROR_PARAMETERS_INVALID)
    return
}

10-04 22:20