Mojolic...idation(3)
π
Mojolic...idation(3) β Mojolicious::Validator::Validation π
okay so this is the User Contributed Perl Documentation page for Mojolic...idation(3), and it's highkey all about Mojolicious::Validator::Validation, the class that performs Mojolicious::Validator validation checks. bestie, every attribute, method, check, example, and SEE ALSO reference is here β no skips, no cap, periodt. π
πΈ 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. that's the whole vibe: it's the object doing the validating, and it's lowkey iconic. obsessed. π
π ATTRIBUTES π
Mojolicious::Validator::Validation implements the following attributes. yes bestie, these are the little knobs you can get and set.
π csrf_token
my $token = $v->csrf_token;
$v = $v->csrf_token('fa6a08...');
CSRF token. literally the CSRF token, no cap. π
π input
my $input = $v->input;
$v = $v->input({foo => 'bar', baz => [123, 'yada']});
Data to be validated. this is the raw stuff going into the vibe check.
π output
my $output = $v->output;
$v = $v->output({foo => 'bar', baz => [123, 'yada']});
Validated data. the stuff that made it through, slay. β¨
π topic
my $topic = $v->topic;
$v = $v->topic('foo');
Name of field currently being validated. it's giving "main character field energy." π―
π validator
my $v = $v->validator;
$v = $v->validator(Mojolicious::Validator->new);
Mojolicious::Validator object this validation belongs to. iykyk. π«Ά
π METHODS π
Mojolicious::Validator::Validation inherits all methods from Mojo::Base and implements the following new ones. okay so here's where it gets good.
π₯ 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. one fail and the rest are like "ok bestie, we're done here." π
π₯ csrf_protect
$v = $v->csrf_protect;
Validate "csrf_token" and protect from cross-site request forgery. Tokens are masked with a random value to protect against BREACH attacks. security slay. π‘οΈ
π₯ 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.
one failed-check detail per field, max β that's the rule, bestie. π¨
# 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. quick vibe check on the input. β
π₯ 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". this is the part where the syntax gets all cute and chainy, bestie. π
# 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>.
π and that's the whole manual, bestie! source/version: perl v5.42.0; date: 2026-07-15; footer manual name: Mojolic...idation(3). slay. π«Ά
π¦ where this page comes from
- opensuse-leap 16.0: perl-Mojolicious 9.480.0-bp160.2.1 Β· Artistic-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms