• 欢迎来到本博客,希望可以y一起学习与分享

Gin的参数绑定与日期处理

笔记 benz 2个月前 (04-10) 6次浏览 0个评论 扫描二维码
文章目录[隐藏]

建立model

建立一个user表的结构体

1、gorm:gorm用于数据库迁移用的,具体参数可以查看。
2、json:序列化为json的时候,对应的json字段。
3、form:用于参数绑定,声明对应的表单字段。
4、binding:用于参数校验,后面是校验规则。
5、time_format日期格式化,go中使用格式模板”2006-01-02 15:04:05″ 代替”Y-m-d H:i:s”这样的写法。go的日期处理和平时使用的语言不一样,要好好理解。
6、如果时间字段,表里是datetime,那么struct应该用time.Time声明,并且使用time_format声明时间的格式
7、gorm默认使用struct的名称+s(复数)作为表名,可以重写TableName()方法,自定义表名。

参数绑定

gin使用context.ShouldBind()来绑定参数,绑定参数的方法还有还有很多,如:ShouldBindJSON()、bind()等等,它们的关系和区别,有兴趣可以了解一下。

其他

我在网上看到自定义日期,
对于request和response都是json(Content-Type:application/json)来说,通过重写UnmarshalJSONMarshalJSON来自定义日期。
对于数据库的读出和写入,通过重写Value Scan两个方法来自定义日期。
而且会引起验证器 binding:"required" 无法正常工作,并给出了解决方案。原文地址:
Go 自定义日期时间格式解析解决方案 – 解决 parsing time xx as xx: cannot parse xx as xx 错误
我的是用表单提交(Content-Type:application/x-www-form-urlencoded),不是json(Content-Type:application/json),所以没有调用UnmarshalJSONMarshalJSON这两个方法,在绑定参数哪里context.ShouldBind()日期一直报错,最后在在日期字段加了time_format才把问题解决:


文章 Gin的参数绑定与日期处理 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!