More Related Content
Similar to Sledge recently in Yokohama.pm Aug, 2008
Similar to Sledge recently in Yokohama.pm Aug, 2008 (20)
Sledge recently in Yokohama.pm Aug, 2008
- 18. Validation処理(今)
Data::FormValodatorを利用
# App::PagesやApp::Data::Baseなどにvalidate()を定義
sub validate {
my($self, $name) = @_;
unless ($name) {
$name = join '_', $self->prefix, $self->page;
$name =~ s{/}{_}g;
$name =~ s{^_}{};
}
my $profiles = $self->path_to('etc', 'dfv.pl')->stringify;
my $dfv = Data::FormValidator->new($profiles, {
missing_optional_valid => 1,
msgs => &dfv_messages_handler($name),
});
my $form = eval { $dfv->check($self->r, $name); };
$self->stash->{form} = $form;
$form;
}
- 19. Validation処理(今)
ちなみにetc/dfv.plは普通な感じです
use strict;
use Data::FormValidator::Constraints qw(:closures);
return +{
page1 => {
required => [qw(username password)],
constraint_methods => {
username => qr/^[a-zA-Z0-9]{4,8}$/,
},
},
page2 => {
required => [qw(foo bar)],
optional => [qw(baz) ],
constraint_methods => {
foo => qr/^[01]$/,
},
},
};