gorm 如何存数组

richzhu:各位大佬,请问如何使用 gorm 保存切片,下面是我出错的代码

结构体

type Node struct {
	ID     int    `json:"id"`
	Name   string `json:"name"`
	Author string `json:"author"`
	IP   []string `json:"ip"`
}

Gorm 保存

ips:=[]string{"1.1.1.1","2.2.2.2","3.3.3.3"}
body := Node{Name: "testName", Author: "testAuthor", Node: ips}
if err := DB.Create(&body).Error; err != nil {
	return false
}

得到报错

unsupported data type: &[]

我想存入数据库的数据形式是:

"1.1.1.1","2.2.2.2","3.3.3.3"

前端发来的数据,只能是一个数组包含着 ip,还不能改。。。
这种情况下,问下大佬们我该咋整 T_T

zgw0:我之前的做法是转了字符串存起来,然后用的时候再转回数组

z0wjqnxi:``` golang
type Node struct {
...
IPList ipList `json:"ip" binding:”gt=0,dive,ipv4“ `
}

type ipList []string

// gorm 自定义结构需要实现 Value Scan 两个方法
// Value 实现方法
func (p ipList ) Value() (driver.Value, error) {
return json.Marshal(p)
}

// Scan 实现方法
func (p *ipList ) Scan(data interface{}) error {
return json.Unmarshal(data.([]byte), &p)
}

自定义结构我是这么实现的

richzhu:@zgw0 谢谢老哥,咱俩想的一样,但是我这情况有点特殊,前端发来的数据结构体必须要保持[]string 的类型才可以收到,又不想大改,就没用这个方法

@z0wjqnxi 感谢大佬,无脑复制您的代码,把 node 改成 ipList 类型后,一下就成功了,爽的不要不要的~

GORM 结构生成

huifer:做了一个简单的 gorm 结构体生成工具: https://github.com/huifer/goland-gorm-generator-helper

请问小程序换量的技术实现是怎样的?

rouwann:像阿拉丁上面提供小程序换量的信息和联系方式,所以是针对特定的小程序,代码里做跳转和数据上报吗?有没有第三方的联盟 sdk 可以解决换量问题?本人产品经理,望指教

有没有写好接口文档就生成接口代码的工具?

fanyingmao:要求写好接口文档,然后生成各部分代码并对出入参数做检查,然后修改接口文档也会帮忙只修改对应部分的代码,这样开发只有写对出入参数实现部分就可以了,少了很多复制粘贴,文件间跳转修改的工作同时减少当中出错的可能。 还有针对 node 有定义好数据库表然后生成 model 代码的工具吗?

写文档比写代码难多了

heboy:最近计划开源一个项目,功能很简单总共就 3 个命令加一些扩展,结果文档写了两个月还是不满意,删了写写了删。真的比写代码还纠结wysnylc:文字的历史比代码可久多了 rimutuyuan:写文档还好,写解决方案才费劲,想起了被 800 字支配的恐惧

开发钓鱼网站有什么风险,会被抓吗

mswh:今天有人带价要我开发一个钓鱼网站,要我从代码到部署全部搞定,就一个登录页面,收发验证码,然后把验证码传到后台,虽然我觉得这种验证码传到后台又没用,别的平台肯定有验证验证码的功能。但是还是有点小担心,做这种钓鱼网站后面真的不会被抓吗?为了几千块钱是不是有点风险?dallaslu:会生孩子没屁眼