Function 如何更改sqlite get函数?
如何更改Get函数,使其只返回一个设备对象Function 如何更改sqlite get函数?,function,sqlite,go,web,Function,Sqlite,Go,Web,如何更改Get函数,使其只返回一个设备对象 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",
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)
}
}
所以我的第二个问题是,我如何在我的cart函数中传递数组作为Go中的数据,永远不要忽略错误。比如说,
equipment, err := model.GetEquipment(model.Db)
if err != nil {
// handle error
}
data := CartData{
Name: "Cart",
Equipment: equipment,
// ...
}
在围棋中,永远不要忽略错误。比如说,
equipment, err := model.GetEquipment(model.Db)
if err != nil {
// handle error
}
data := CartData{
Name: "Cart",
Equipment: equipment,
// ...
}
append方法解决了我的问题
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])
}
var List[]model.Equipment
for i := range result {
equipment, err := model.GetEquipmentByID(result[i])
if err != nil {
// handle error
}
fmt.Println(i)
fmt.Println(equipment)
List = append(List,equipment)
// List[i] = equipment
// data.CartList[i] = equipment
}
fmt.Println(List)
data := CartData{
Name: "Cart",
Equipment: model.GetEquipment(model.Db),
CartList: List,
Pages: []Page{
{
Title: "Meine Geräte",
Active: false,
Link: "/my-equipment",
},
{
Title: "Equipment",
Active: false,
Link: "/equipment",
},
{
Title: "Logout",
Active: false,
Link: "/logout",
},
},
}
append方法解决了我的问题
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])
}
var List[]model.Equipment
for i := range result {
equipment, err := model.GetEquipmentByID(result[i])
if err != nil {
// handle error
}
fmt.Println(i)
fmt.Println(equipment)
List = append(List,equipment)
// List[i] = equipment
// data.CartList[i] = equipment
}
fmt.Println(List)
data := CartData{
Name: "Cart",
Equipment: model.GetEquipment(model.Db),
CartList: List,
Pages: []Page{
{
Title: "Meine Geräte",
Active: false,
Link: "/my-equipment",
},
{
Title: "Equipment",
Active: false,
Link: "/equipment",
},
{
Title: "Logout",
Active: false,
Link: "/logout",
},
},
}
换了我的职位。现在我收到以下错误消息:undefined Cartlist这是错误所在的位置:Cart[i]=equipment@ChristopherG1994:
CartList[i]=设备
:错误未定义的CartList
:数据.CartList[i]=设备
。这会给我以下错误:对于i:=范围结果{设备,错误:=model.GetEquipmentByID(结果[i])如果err!=nil{//handle error}fmt.Println(设备)data.CartList[i]=device}紧急服务[::1]:60965:运行时错误:索引超出范围可能是因为CartData中的Cart:nil,但我还必须使用什么?更改了我的帖子。现在我收到以下错误消息:undefined Cartlist这是错误所在的位置:Cart[i]=equipment@ChristopherG1994:CartList[i]=设备
:错误未定义的CartList
:数据.CartList[i]=设备
。这会给我以下错误:对于i:=范围结果{设备,错误:=model.GetEquipmentByID(结果[i])如果err!=nil{//handle error}fmt.Println(设备)data.CartList[i]=device}panic serving[::1]:60965:运行时错误:索引超出范围可能是因为Cart:nil,在CartData中,但我还必须使用什么呢?虽然这个代码片段可以解决这个问题,但确实有助于提高帖子的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。谢谢您的建议。在将来,我将努力提高我的文章的质量。虽然这个代码片段可能会解决这个问题,但它确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。谢谢您的建议。今后我会努力提高我的帖子质量。