名前

Mojolicious::Validator - パラメーターの検証

使い方

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::ValidatorMojoliciousのためにパラメーターを検証します。

チェック

これらの検証チェックがデフォルトで利用可能です。

equal_to

$validation->equal_to('foo');

値がもうひとつのフィールドの値に等しいことを必要とする。

in

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

値が、リストにある複数の値のひとつにマッチすることを必要とする。

like

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

値が、正規表現にマッチすることを必要とする。

num

$v = $v->num;
$v = $v->num(2, 5);
$v = $v->num(2, undef);
$v = $v->num(undef, 5);

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

文字列値が小数でない数であることを必要とし、与えられた範囲があれば、それに収まる必要がある。

size

$validation->size(2, 5);

文字列の値の長さか、Mojo::Uploadのサイズが、これらの二つの値の間にあることを必要とする。

フィルター

以下のフィルターをデフォルトで使用できます。

trim

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

Mojo::Utilの「trim」を使って、空白文字を文字列の両端から取り除きます。

属性

Mojolicious::Validatorは次の属性を実装しています。

checks

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

検証チェックを登録します。デフォルトでequal_to, in, likesizeが利用できます。

メソッド

Mojolicious::ValidatorMojo::Baseを継承しており、 次の新しいものを実装しています。

add_check

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

新しい検証チェックを登録します。

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

add_filter

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

新しいフィルターを登録する。

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

new

my $validator = Mojolicious::Validator->new;

新しいMojolicious::Validatorオブジェクトを構築する。

validation

my $validation = $validator->validation;

検証を実行するためのMojolicious::Validator::Validationオブジェクトを生成します。

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

参考

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

(Mojolicious 8.12を反映。2019年6月14日更新)