valid.go 616 B

1234567891011121314151617181920212223242526272829303132
  1. package valid
  2. import (
  3. "context"
  4. "strings"
  5. "github.com/gogf/gf/errors/gerror"
  6. "github.com/gogf/gf/util/gconv"
  7. "github.com/gogf/gf/util/gvalid"
  8. )
  9. func init() {
  10. if err := gvalid.RegisterRule("int-in", IntInChecker); err != nil {
  11. panic(err)
  12. }
  13. }
  14. func IntInChecker(ctx context.Context, rule string, value interface{}, message string, data interface{}) error {
  15. // rule int-in:1,2
  16. v := gconv.String(value)
  17. allow := strings.Split(rule, ":")
  18. if len(allow) < 2 {
  19. return nil
  20. }
  21. allow = strings.Split(allow[1], ",")
  22. for _, a := range allow {
  23. if v == a {
  24. return nil
  25. }
  26. }
  27. return gerror.New(message)
  28. }