我在 fruits.go
中定义了一个结构
package domain
type AppleImages struct {
Front string `json:"frontImage"`
Back string `json:"backImage"`
Top string `json:"topImage"`
}
我在 process.go
中定义了相同的内容(它将数据返回给处理程序)。此定义仅用于演示目的,因为我使用 gorm 从数据库获取值,因此我们无法在此处附加所需的 URL。
package process
func getApple() (apple domain.Apple){
apple = domain.Apple{
Front: "front-image.png"
Back: "back-image.png"
Top: "top-image.png"
}
return
}
对于我的输出想要返回
{
frontImage: "https://www.example.com/front-image.png",
backImage: "https://www.example.com/back-image.png",
topImage: "https://www.example.com/top-image.png",
}
我不想手动将 https://www.example.com/
添加到结构中的每个图像。
是否有一种方法可以解析结构并自动将此字符串附加到所有现有值?
最佳答案
使用 gorm AfterFind
钩子(Hook)。每次从数据库加载数据后,gorm 都会调用 AfterFind
,并且您的数据将针对 Apple
模型进行更新。这样你就不需要每次从数据库中获取数据后都手动执行此操作。
func (u *Apple) AfterFind() (err error) {
u.Front= "https://www.example.com/"+ u.Front
u.Back= "https://www.example.com/"+ u.Back
u.Top= "https://www.example.com/"+ u.Top
return
}
查看详情here
关于go - 如何附加到结构内的所有字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62039606/