Mojolicious::Validator − Validate values
use
Mojolicious::Validator;
my $validator = Mojolicious::Validator−>new;
my $v = $validator−>validation;
$v−>input({foo => 'bar'});
$v−>required('foo')−>like(qr/ar$/);
say $v−>param('foo');
Mojolicious::Validator validates values for Mojolicious.
These validation checks are available by default.
$v = $v−>equal_to('foo');
String value needs to be equal to the value of another field.
$v = $v−>in('foo', 'bar', 'baz');
String value needs to match one of the values in the list.
$v = $v−>like(qr/ˆ[A−Z]/);
String value needs to match the regular expression.
$v =
$v−>num;
$v = $v−>num(2, 5);
$v = $v−>num(−3, 7);
$v = $v−>num(2, undef);
$v = $v−>num(undef, 5);
String value needs to be a non-fractional number (positive or negative) and if provided in the given range.
$v =
$v−>size(2, 5);
$v = $v−>size(2, undef);
$v = $v−>size(undef, 5);
String value length or size of Mojo::Upload object in bytes needs to be between these two values.
$v = $v−>upload;
Value needs to be a Mojo::Upload object, representing a file upload.
These filters are available by default.
$v = $v−>optional('foo', 'comma_separated');
Split string of comma separated values into separate values.
$v = $v−>optional('foo', 'not_empty');
Remove empty string values and treat them as if they had not been submitted.
$v = $v−>optional('foo', 'trim');
Trim whitespace characters from both ends of string value with "trim" in Mojo::Util.
Mojolicious::Validator implements the following attributes.
my $checks =
$validator−>checks;
$validator = $validator−>checks({size => sub
($v, $name, $value, @args) {...}});
Registered validation checks, by default only "equal_to", "in", "like", "num", "size" and "upload" are already defined.
my $filters =
$validator−>filters;
$validator = $validator−>filters({trim => sub
{...}});
Registered filters, by default only "comma_separated", "not_empty" and "trim" are already defined.
Mojolicious::Validator inherits all methods from Mojo::Base and implements the following new ones.
$validator = $validator−>add_check(size => sub ($v, $name, $value, @args) {...});
Register a validation check.
$validator−>add_check(foo
=> sub ($v, $name, $value, @args) {
...
return undef;
});
$validator = $validator−>add_filter(trim => sub ($v, $name, $value) {...});
Register a new filter.
$validator−>add_filter(foo
=> sub ($v, $name, $value) {
...
return $value;
});
my $validator = Mojolicious::Validator−>new;
Construct a new Mojolicious::Validator object.
my $v = $validator−>validation;
Build Mojolicious::Validator::Validation object to perform validations.
my $v =
$validator−>validation;
$v−>input({foo => 'bar'});
$v−>required('foo')−>size(1, 5);
say $v−>param('foo');
Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.