dwww Home | Manual pages | Find package

Mojolicious::ValidatorUserlContributed)Mojolicious::Validator::Validation(3pm)

NAME
       Mojolicious::Validator::Validation - Perform validations

SYNOPSIS
         use Mojolicious::Validator;
         use Mojolicious::Validator::Validation;

         my $validator = Mojolicious::Validator->new;
         my $v = Mojolicious::Validator::Validation->new(validator => $validator);
         $v->input({foo => 'bar'});
         $v->required('foo')->in('bar', 'baz');
         say $v->param('foo');

DESCRIPTION
       Mojolicious::Validator::Validation performs Mojolicious::Validator
       validation checks.

ATTRIBUTES
       Mojolicious::Validator::Validation implements the following attributes.

   csrf_token
         my $token = $v->csrf_token;
         $v        = $v->csrf_token('fa6a08...');

       CSRF token.

   input
         my $input = $v->input;
         $v        = $v->input({foo => 'bar', baz => [123, 'yada']});

       Data to be validated.

   output
         my $output = $v->output;
         $v         = $v->output({foo => 'bar', baz => [123, 'yada']});

       Validated data.

   topic
         my $topic = $v->topic;
         $v        = $v->topic('foo');

       Name of field currently being validated.

   validator
         my $v = $v->validator;
         $v    = $v->validator(Mojolicious::Validator->new);

       Mojolicious::Validator object this validation belongs to.

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

   check
         $v = $v->check('size', 2, 7);

       Perform validation check on all values of the current "topic", no more
       checks will be performed on them after the first one failed. All checks
       from "CHECKS" in Mojolicious::Validator are supported.

   csrf_protect
         $v = $v->csrf_protect;

       Validate "csrf_token" and protect from cross-site request forgery.

   error
         my $err = $v->error('foo');
         $v      = $v->error(foo => ['custom_check']);
         $v      = $v->error(foo => [$check, $result, @args]);

       Get or set details for failed validation check, at any given time there
       can only be one per field.

         # Details about failed validation
         my ($check, $result, @args) = @{$v->error('foo')};

         # Force validation to fail for a field without performing a check
         $v->error(foo => ['some_made_up_check_name']);

   every_param
         my $values = $v->every_param;
         my $values = $v->every_param('foo');

       Similar to "param", but returns all values sharing the same name as an
       array reference.

         # Get first value
         my $first = $v->every_param('foo')->[0];

   failed
         my $names = $v->failed;

       Return an array reference with all names for values that failed
       validation.

         # Names of all values that failed
         say for @{$v->failed};

   has_data
         my $bool = $v->has_data;

       Check if "input" is available for validation.

   has_error
         my $bool = $v->has_error;
         my $bool = $v->has_error('foo');

       Check if validation resulted in errors, defaults to checking all
       fields.

   is_valid
         my $bool = $v->is_valid;
         my $bool = $v->is_valid('foo');

       Check if validation was successful and field has a value, defaults to
       checking the current "topic".

   optional
         $v = $v->optional('foo');
         $v = $v->optional('foo', @filters);

       Change validation "topic" and apply filters. All filters from "FILTERS"
       in Mojolicious::Validator are supported.

         # Trim value and check size
         $v->optional('user', 'trim')->size(1, 15);

   param
         my $value = $v->param;
         my $value = $v->param('foo');

       Access validated values, defaults to the current "topic". If there are
       multiple values sharing the same name, and you want to access more than
       just the last one, you can use "every_param".

         # Get value right away
         my $user = $v->optional('user')->size(1, 15)->param;

   passed
         my $names = $v->passed;

       Return an array reference with all names for values that passed
       validation.

         # Names of all values that passed
         say for @{$v->passed};

   required
         $v = $v->required('foo');
         $v = $v->required('foo', @filters);

       Change validation "topic", apply filters, and make sure a value is
       present. All filters from "FILTERS" in Mojolicious::Validator are
       supported.

         # Trim value and check size
         $v->required('user', 'trim')->size(1, 15);

CHECKS
       In addition to the "ATTRIBUTES" and "METHODS" above, you can also call
       validation checks provided by "validator" on
       Mojolicious::Validator::Validation objects, similar to "check".

         # Call validation checks
         $v->required('foo')->size(2, 5)->like(qr/^[A-Z]/);
         $v->optional('bar')->equal_to('foo');
         $v->optional('baz')->in('test', '123');

         # Longer version
         $v->required('foo')->check('size', 2, 5)->check('like', qr/^[A-Z]/);

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

perl v5.36.0                      2022-Mojolicious::Validator::Validation(3pm)

Generated by dwww version 1.15 on Tue Jun 25 08:50:59 CEST 2024.