首页 > 解决方案 > 如何更改 sqlite get 功能?

问题描述

如何更改我的 Get 函数以使其仅返回一个 Equipment-Objekt?

func GetEquipmentByID(Id string) (equipment Equipment, err error) {
    equipment = Equipment{}
    err = Db.QueryRow("select ID, Name, Description, ImgPath, Category, Availability, Amount, Storage from Equipment where Id = $1", Id).Scan(&equipment.ID, &equipment.Name, &equipment.Description, &equipment.ImgPath, &equipment.Category, &equipment.Availability, &equipment.Amount, &equipment.Storage)
    return 
}

我想用这个函数在我的控制器中填充一个设备数组。但现在它不起作用,因为我的函数返回 2 个对象(设备和错误)

我想在这里使用它:

    func Cart(w http.ResponseWriter,    r   *http.Request)  {
        data := CartData{ 
        Name: "Cart",
        Equipment: model.GetEquipment(model.Db),
        CartList: nil,  
        Pages: []Page{
            {
                Title: "Meine Geräte", 
                Active: false,
                Link: "/my-equipment",
            },
            {
                Title: "Equipment", 
                Active: false,
                Link: "/equipment",
            },
            {
                Title: "Logout",
                Active: false,
                Link: "/logout",
            },
        },

    }

        session, _ := store.Get(r, "cookie-name")


      list := session.Values["EquipmentIDs"].(string)

      result := strings.Split(list, ",")
      for i := range result {
            fmt.Print(i)
            fmt.Println(result[i])
        }



     for i:= range result {
equipment, err := model.GetEquipmentByID(result[i])
if err != nil {
    // handle error
}
data.CartList[i] = equipment // ERROR BECAUSE OF THIS LINE
}



        tmpl:= template.Must(template.ParseFiles("template/base_user.html", "template/cart.html"))
        tmpl.ExecuteTemplate(w, "base", data)
        }
    }

所以我的第二个问题是,如何将我的购物车函数中的数组作为数据传递

标签: functionsqlitegoweb

解决方案


在 Go 中,永远不要忽略错误。例如,

equipment, err := model.GetEquipment(model.Db)
if err != nil {
    // handle error
}
data := CartData{ 
    Name: "Cart",
    Equipment: equipment,
    // ...
}

推荐阅读