gpt4 book ai didi

go - 不支持的模型 *settingsmodel.Settings?

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:47 26 4
gpt4 key购买 nike

我正在为 PostgreSQL 使用这个 ORM 库:https://godoc.org/github.com/go-pg/pg#example-DB-Select我遇到了一个我不明白的奇怪问题。

我正在尝试从我的 settings 表中SELECT 数据,以便稍后使用函数更新该值。

package settingsmodel

import (
. "database"
)

type Settings struct {
Id int64
SiteName string
}

func Set(newValue string) bool {
site := &Settings {
SiteName: "MySite",
}

err := Db.Select(&site)
if err != nil {
panic(err) // This is where it panics
}

site.SiteName = newValue
err = Db.Update(site)
if err != nil {
panic(err)
}

return true
}

我得到的错误是 panic: pg: Model(unsupported *settingsmodel.Settings)

我有另一个函数(在同一个文件中),我可以在其中获取站点名称并且它工作得很好:

func Get() string {
var site Settings

err := Db.Model(&site).First()
if err != nil {
panic(err)
}

return site.SiteName
}

我真的不明白为什么它不起作用。有什么帮助吗?谢谢!

最佳答案

在工作示例中,您将传递一个指向设置的指针;在第一个(非工作)示例中,您将指针传递给指针:

// &Settings - site is a pointer to a Settings struct
site := &Settings {
SiteName: "MySite",
}

// &site - pass a pointer to site, which is already a pointer
err := Db.Select(&site)

与工作的相比:

// site is a value, not a pointer
var site Settings

// Pass a pointer to the value
err := Db.Model(&site).First()

关于go - 不支持的模型 *settingsmodel.Settings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com