1 回答
TA贡献1804条经验 获得超8个赞
首先orders := []&Order{}应该是orders := make([]Order,0)
然后使用Find()而不是First()获取多个值。
对于结构、切片、映射和其他复合类型,如果不包含数据,则可以返回nil
所以你的代码应该是
func (d DbPersister) FetchAllOrdersByCustomerId(userId string) ([]Order,error) {
orders := make([]Order,0)
if err := d.GormDB.Table("orders").
Select(`orders`.`order_id`,
`orders`.`quantity`,
`orders`.`status`,
`addresses`.`line_1`,
`addresses`.`state`,
`addresses`.`zip`).
Joins("join addresses on addresses.address_id = orders.shipping_address_id").
Joins("join users on users.user_id = orders.user_id").
Where("users.user_id = ?", userId).
Find(&orders).Error; err != nil {
return nil, err
}
return orders,nil
}
- 1 回答
- 0 关注
- 283 浏览
添加回答
举报