如何将自定义属性附加到 Golang 结构,如 Laravel 模型上的 $append?
How to append custom attribute to Golang struct like $append on a Laravel model?
我正在尝试向我的 Golang 结构添加自定义属性,就像我通常使用 $appends 变量在 Laravel 模型上添加自定义属性一样。
这是代码:
package models
import (
"time"
)
type Dummy struct {
ID string `json:"id" gorm:"primary_key"`
Description string `json:"description"`
Image string `json:"image"`
ImageUrl ImageUrlDummy
Number int `json:"number"`
UserId string `json:"user_id"`
User User `json:"user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func ImageUrlDummy() string {
return "test"
}
但是,结构内部的 ImageUrlDummy 不起作用,它会出现 return 错误,例如:
ImageUrlDummy (value of type func() string) is not a type
我如何实现从 Laravel 到 Golang 的相同代码?
class Dummy extends Model
{
protected $appends = ['image_url'];
public function getImageUrlAttribute(){
return "this is the image url";
}
}
请原谅我还在学习Golang,谢谢
你已经不远了..
将您的结构更改为(删除 ImageUrlDummy,修复图像的 json 标签):
type Dummy struct {
ID string `json:"id" gorm:"primary_key"`
Description string `json:"description"`
Image string `json:"image"`
Number int `json:"number"`
UserId string `json:"user_id"`
User User `json:"user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
然后用虚拟指针类型的接收者定义一个方法
func (d *Dummy) ImageUrl() string {
return "test"
}
包含更多内容的示例:https://play.golang.com/p/olGSFhBgqkG
我正在尝试向我的 Golang 结构添加自定义属性,就像我通常使用 $appends 变量在 Laravel 模型上添加自定义属性一样。
这是代码:
package models
import (
"time"
)
type Dummy struct {
ID string `json:"id" gorm:"primary_key"`
Description string `json:"description"`
Image string `json:"image"`
ImageUrl ImageUrlDummy
Number int `json:"number"`
UserId string `json:"user_id"`
User User `json:"user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func ImageUrlDummy() string {
return "test"
}
但是,结构内部的 ImageUrlDummy 不起作用,它会出现 return 错误,例如:
ImageUrlDummy (value of type func() string) is not a type
我如何实现从 Laravel 到 Golang 的相同代码?
class Dummy extends Model
{
protected $appends = ['image_url'];
public function getImageUrlAttribute(){
return "this is the image url";
}
}
请原谅我还在学习Golang,谢谢
你已经不远了..
将您的结构更改为(删除 ImageUrlDummy,修复图像的 json 标签):
type Dummy struct {
ID string `json:"id" gorm:"primary_key"`
Description string `json:"description"`
Image string `json:"image"`
Number int `json:"number"`
UserId string `json:"user_id"`
User User `json:"user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
然后用虚拟指针类型的接收者定义一个方法
func (d *Dummy) ImageUrl() string {
return "test"
}
包含更多内容的示例:https://play.golang.com/p/olGSFhBgqkG