package users import ( "github.com/gin-gonic/gin" "goskeleton/app/global/consts" "goskeleton/app/http/controller/web" "goskeleton/app/http/validator/core/data_transfer" "goskeleton/app/utils/response" ) // type Update struct { // // BaseField // UserName string `form:"user_name" json:"user_name" binding:"required,min=3"` // 必填、对于文本,表示它的长度>=1 // Pass string `form:"pass" json:"pass" binding:"min=6"` // 密码为 长度>=6 // Id // // 表单参数验证结构体支持匿名结构体嵌套、以及匿名结构体与普通字段组合 // // RealName string `form:"real_name" json:"real_name" binding:"required,min=2"` // // Phone string `form:"phone" json:"phone" binding:"required,len=11"` // // Remark string `form:"remark" json:"remark"` // } // // 验证器语法,参见 Register.go文件,有详细说明 // func (u Update) CheckParams(context *gin.Context) { // //1.基本的验证规则没有通过 // if err := context.ShouldBind(&u); err != nil { // // 将表单参数验证器出现的错误直接交给错误翻译器统一处理即可 // response.ValidatorError(context, err) // return // } // // 该函数主要是将本结构体的字段(成员)按照 consts.ValidatorPrefix+ json标签对应的 键 => 值 形式绑定在上下文,便于下一步(控制器)可以直接通过 context.Get(键) 获取相关值 // extraAddBindDataContext := data_transfer.DataAddContext(u, consts.ValidatorPrefix, context) // if extraAddBindDataContext == nil { // response.ErrorSystem(context, "UserUpdate表单验证器json化失败", "") // } else { // // 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性 // (&web.Users{}).Update(extraAddBindDataContext) // } // } type NameUpdate struct{ UserName string `form:"user_name" json:"user_name" binding:"required,min=3"` // 必填、对于文本,表示它的长度>=1 Id } type PasswordUpdate struct{ OldPass string `form:"oldpass" json:"oldpass" binding:"required,min=6"` // 密码为 长度>=6 NewPass string `form:"newpass" json:"newpass" binding:"required,min=6"` NameUpdate } func (n NameUpdate) CheckParams(context *gin.Context) { //1.基本的验证规则没有通过 if err := context.ShouldBind(&n); err != nil { // 将表单参数验证器出现的错误直接交给错误翻译器统一处理即可 response.ValidatorError(context, err) return } // 该函数主要是将本结构体的字段(成员)按照 consts.ValidatorPrefix+ json标签对应的 键 => 值 形式绑定在上下文,便于下一步(控制器)可以直接通过 context.Get(键) 获取相关值 extraAddBindDataContext := data_transfer.DataAddContext(n, consts.ValidatorPrefix, context) if extraAddBindDataContext == nil { response.ErrorSystem(context, "UserUpdate表单验证器json化失败", "") } else { // 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性 (&web.Users{}).NameUpdate(extraAddBindDataContext) } } func (p PasswordUpdate) CheckParams(context *gin.Context) { //1.基本的验证规则没有通过 if err := context.ShouldBind(&p); err != nil { // 将表单参数验证器出现的错误直接交给错误翻译器统一处理即可 response.ValidatorError(context, err) return } // 该函数主要是将本结构体的字段(成员)按照 consts.ValidatorPrefix+ json标签对应的 键 => 值 形式绑定在上下文,便于下一步(控制器)可以直接通过 context.Get(键) 获取相关值 extraAddBindDataContext := data_transfer.DataAddContext(p, consts.ValidatorPrefix, context) if extraAddBindDataContext == nil { response.ErrorSystem(context, "UserUpdate表单验证器json化失败", "") } else { // 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性 (&web.Users{}).PasswordUpdate(extraAddBindDataContext) } }