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 關注
- 306 瀏覽
添加回答
舉報