Declaring Constraints

You can define constraints in several locations:

When validating using validate(), validateOrFail() you have to specify a target, but specifying a constraint in your call is optional.

Constraints Discovery

When you call the validation methods with NO constraints passed explicitly, then the validation module will following this lookup procedure:

  • Lookup your constraints in myTarget.constraints struct in your target object or struct.

  • If you specify your constraint parameter as a string, the validator will lookup a shared constraint in your configuration file.

  • If you specify your constraint parameter as a struct, this struct will directly server as your set of constraints, so you can specify your constraints on the fly, or specify an alternative set of constraints in your model, e.g User.constraints vs User.signInConstraints