我试图通过基于项目的学习来学习Golang。我给自己提出的问题是模拟客户将产品添加到购物车。目前,我有这样的模型。Cart.go
type Cart struct {
ID string
Customer Customer
CustomerID string
Product Product
ProductID string
CreatedAt time.Time
UpdatedAt time.Time
}
在 Cart 模型上,我有一个函数定义为
func (c *Cart) GetAllItemsInCart(db *gorm.DB, customer_id string) (*gorm.DB, error) {
items := db.Raw("SELECT id, product_id FROM carts WHERE customer_id = ?", customer_id).Scan(&c)
return items, nil
}
此函数在控制器中调用
func (server *Server) GetAllCartItems(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
id := vars["id"]
cart := models.Cart{}
items, err := cart.GetAllItemsInCart(server.DB, id)
if err != nil {
responses.ERROR(w, http.StatusInternalServerError, err)
return
}
responses.JSON(w, http.StatusOK, items)
}
据我所知,目前它将扫描结构的值,或者在这种情况下将找到的数据加载到指定的结构中。但是,我看到的回应是回来的Scan()
{
"Value": null,
"Error": null,
"RowsAffected": 2
}
这给了我50%的希望,因为“RowsAffected”:2是正确的。但是,有效负载响应显然不是我正在寻找的。任何指导将不胜感激,谢谢。
白猪掌柜的
慕尼黑5688855
相关分类