NAME
Mojolicious::Validator::Validation - Perform validations
SYNOPSIS
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.
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
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.
my ( $check , $result , @args ) = @{ $v ->error( 'foo' )};
$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.
my $first = $v ->every_param( 'foo' )->[0];
|
failed
Return an array reference with all names for values that failed validation.
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.
$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".
my $user = $v ->optional( 'user' )->size(1, 15)->param;
|
passed
Return an array reference with all names for values that passed validation.
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.
$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".
$v ->required( 'foo' )->size(2, 5)->like( qr/^[A-Z]/ );
$v ->optional( 'bar' )->equal_to( 'foo' );
$v ->optional( 'baz' )->in( 'test' , '123' );
$v ->required( 'foo' )->check( 'size' , 2, 5)->check( 'like' , qr/^[A-Z]/ );
|
SEE ALSO
Mojolicious, Mojolicious::Guides, https://mojolicious.org.