Mojolicious::Validator(3)

NAME
Mojolicious::Validator - Validate values

SYNOPSIS
  use Mojolicious::Validator;

  my $validator  = Mojolicious::Validator->new;
  my $validation = $validator->validation;
  $validation->input({foo => 'bar'});
  $validation->required('foo')->like(qr/ar$/);
  say $validation->param('foo');

DESCRIPTION
Mojolicious::Validator validates values for Mojolicious.

CHECKS
These validation checks are available by default.

  equal_to
  $validation = $validation->equal_to('foo');

String value needs to be equal to the value of another field.

  in
  $validation = $validation->in('foo', 'bar', 'baz');

String value needs to match one of the values in the list.

  like
  $validation = $validation->like(qr/^[A-Z]/);

String value needs to match the regular expression.

  num
  $validation = $validation->num;
  $validation = $validation->num(2, 5);

String value needs to be a non-fractional number and if provided in the given range.

  size
  $validation = $validation->size(2, 5);

String value length or size of Mojo::Upload object in bytes needs to be between these two values.

  upload
  $validation = $validation->upload;

Value needs to be a Mojo::Upload object, representing a file upload.

FILTERS
These filters are available by default.

  trim
  $validation = $validation->optional('foo', 'trim');

Trim whitespace characters from both ends of string value with "trim" in Mojo::Util.

ATTRIBUTES
Mojolicious::Validator implements the following attributes.

  checks
  my $checks = $validator->checks;
  $validator = $validator->checks({size => sub {...}});

Registered validation checks, by default only "equal_to", "in", "like", "num", "size" and "upload" are already defined.

METHODS
Mojolicious::Validator inherits all methods from Mojo::Base and implements the following new ones.

  add_check
  $validator = $validator->add_check(size => sub {...});

Register a validation check.

  $validator->add_check(foo => sub {
    my ($validation, $name, $value, @args) = @_;
    ...
    return undef;
  });

  add_filter
  $validator = $validator->add_filter(trim => sub {...});

Register a new filter.

  $validator->add_filter(foo => sub {
    my ($validation, $name, $value) = @_;
    ...
    return $value;
  });

  validation
  my $validation = $validator->validation;

Build Mojolicious::Validator::Validation object to perform validations.

  my $validation = $validator->validation;
  $validation->input({foo => 'bar'});
  $validation->required('foo')->size(1, 5);
  say $validation->param('foo');

SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.