Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Does not work with *int ? #250

@StephanSchmidt

Description

@StephanSchmidt

With github.com/gookit/validate v1.5.1

I use

type Salary struct {
       MinSalary   *int `json:"MinSalary" validate:"int|min:10000" message:"The minimum salary is 10.000 EUR"`
	OkSalary    *int `json:"OkSalary" validate:"int|min:10000" message:"The ok salary is larger than 10.000 EUR"`
	HappySalary *int `json:"HappySalary" validate:"int|min:10000" message:"The happy salary is larger than 10.000 EUR"`
}

With the data

(params.Salary) {
 MinSalary: (*int)(<nil>),
 OkSalary: (*int)(0xc0002503c8)(121211212),
 HappySalary: (*int)(<nil>)
}

and get on validation this error:

(validate.Errors) (len=1) (PANIC=runtime error: invalid memory address or nil pointer dereference){
 (string) (len=8) "OkSalary": (validate.MS) (len=1) (PANIC=runtime error: invalid memory address or nil pointer dereference){
  (string) (len=3) "int": (string) (len=39) "The ok salary is larger than 10.000 EUR"
 }

Does *int not work as a field? How would I encode optional ints?

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions