Golang gorm 结构体定义使用
Golang gorm 结构体定义使用
·
一、定义一个用户注册的结构体
条件:1、用户名和密码不能为空,用户名长度大于2小于12 密码长度大于6小于12
type UserRegisterForm struct {
UserName string `json:"username" form:"username" query:"username" binding:"required,gte=2,lte=12"`
PassWord string `json:"password" form:"password" query:"password" binding:"required,gte=6,lte=12"`
ShareCode string `json:"share_code" form:"share_code" query:"share_code"`
Phone string `json:"phone" form:"phone" query:"phone"`
}
二、字段权限控制
GORM 允许您用标签控制字段级别的权限。这样您就可以让一个字段的权限是只读、只写、只创建、只更新或者被忽略
type User struct {
Name string `gorm:"<-:create"` // 允许读和创建
Name string `gorm:"<-:update"` // 允许读和更新
Name string `gorm:"<-"` // 允许读和写(创建和更新)
Name string `gorm:"<-:false"` // 允许读,禁止写
Name string `gorm:"->"` // 只读(除非有自定义配置,否则禁止写)
Name string `gorm:"->;<-:create"` // 允许读和写
Name string `gorm:"->:false;<-:create"` // 仅创建(禁止从 db 读)
Name string `gorm:"-"` // 通过 struct 读写会忽略该字段
}
创建/更新时间
type User struct {
CreatedAt time.Time // 在创建时,如果该字段值为零值,则使用当前时间填充
UpdatedAt int // 在创建时该字段值为零值或者在更新时,使用当前时间戳秒数填充
Updated int64 `gorm:"autoUpdateTime:nano"` // 使用时间戳填纳秒数充更新时间
Updated int64 `gorm:"autoUpdateTime:milli"` // 使用时间戳毫秒数填充更新时间
Created int64 `gorm:"autoCreateTime"` // 使用时间戳秒数填充创建时间
}
三、定义表模型
type User struct {
Name string `gorm:"type:varchar(20);unique;not null" json:"user_name"`
Phone string `gorm:"type:varchar(20);unique;not null" json:"phone"`
Password string `gorm:"type:blob" json:"-"`
}
注意点:当不需要返回该字段时可以设置 json:"-"
更多推荐
已为社区贡献1条内容
所有评论(0)