validator icon indicating copy to clipboard operation
validator copied to clipboard

empty pointer string with `omitempty,base64` get invalid err

Open JokerCatz opened this issue 1 year ago • 1 comments

  • [v] I have looked at the documentation here first?
  • [v] I have looked at the examples provided that may showcase my question here?

Package version eg. v9, v10: v10

Issue, Question or Enhancement:

if empty pointer string with omitempty,base64 will get base64 error , in doc say if need allow empty string , just use omitempty, original doc :

This validates that a string value contains a valid base64 value. Although an empty string is valid base64 this will report an empty string as an error, if you wish to accept an empty string as valid you can use this with the omitempty tag.

Code sample, to showcase or reproduce:

package main

import (
	"github.com/go-playground/validator/v10"
)

func main() {
	emptyString := ""
	data := struct {
		Str        string  `validate:"omitempty,base64,max=1500"`
		StrPointer *string `validate:"omitempty,base64,max=1500"`
	}{
		Str:        emptyString,
		StrPointer: &emptyString,
	}
	panic(validator.New().Struct(data))
}

// => panic: Key: 'StrPointer' Error:Field validation for 'StrPointer' failed on the 'base64' tag

JokerCatz avatar Jul 21 '23 05:07 JokerCatz

v9 also has this issue

Zvirovyi avatar Aug 29 '23 15:08 Zvirovyi