github.com/gogf/gf@v1.16.9/.example/util/gvalid/gvalid_struct1.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"github.com/gogf/gf/frame/g"
     6  	"github.com/gogf/gf/util/gvalid"
     7  )
     8  
     9  type User struct {
    10  	Uid   int    `gvalid:"uid      @integer|min:1#用户UID不能为空"`
    11  	Name  string `gvalid:"name     @required|length:6,30#请输入用户名称|用户名称长度非法"`
    12  	Pass1 string `gvalid:"password1@required|password3"`
    13  	Pass2 string `gvalid:"password2@required|password3|same:password1#||两次密码不一致,请重新输入"`
    14  }
    15  
    16  func main() {
    17  	user := &User{
    18  		Name:  "john",
    19  		Pass1: "Abc123!@#",
    20  		Pass2: "123",
    21  	}
    22  
    23  	// 使用结构体定义的校验规则和错误提示进行校验
    24  	g.Dump(gvalid.CheckStruct(context.TODO(), user, nil).Map())
    25  
    26  	// 自定义校验规则和错误提示,对定义的特定校验规则和错误提示进行覆盖
    27  	rules := map[string]string{
    28  		"Uid": "required",
    29  	}
    30  	msgs := map[string]interface{}{
    31  		"Pass2": map[string]string{
    32  			"password3": "名称不能为空",
    33  		},
    34  	}
    35  	g.Dump(gvalid.CheckStruct(context.TODO(), user, rules, msgs).Map())
    36  }