首页 > 解决方案 > 如何附加到结构内的所有字符串值?

问题描述

我有一个定义在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/到结构中的每个图像。

有没有办法解析结构并自动将此字符串附加到所有现有值?

标签: gostruct

解决方案


使用 gormAfterFind钩子。每次从数据库 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
}

在此处查看详细信息


推荐阅读