第6回 Catalyst::Plugin::FormValidator::Lazy custom_parameters

概要

俺俺パラメータ設定したいよー。たらららったらーん。custom_parameters!!!

説明

たまにCGI.pmが取得したパラメータじゃなくて、自分で取得した物をわたしたいことがある。そういう時に使用する。
特にセッションを使用している際にいい感じです。

コード

sub neko : Local {
    my ( $s ,$c ) = @_;
    $c->stash->{template} = 'neko.tt';

    if( $c->req->method eq 'POST' ) {
        $c->detach('neko_confirm');
    }
}

sub neko_confirm : Private {
    my ( $s, $c )  = @_;

    $c->form({required => [qw/neko/]});

    if( $c->has_dfv_error ) {
        return ;
    }

    my $v = $c->form->{valid};
    $c->session->{v} = $v;
    $c->stash->{template} = 'neko_confirm.tt';

}

sub neko_do : Local {
    my ( $s, $c ) = @_;

    $c->form({
        custom_parameters => $c->session->{v} || {} ,
        required          => [qw/neko/]
    });

    if( $c->has_dfv_error ) {
        $c->res->status('400');
        $c->res->body('error');
        return ;
    }

    $c->stash->{template} = 'neko_do.tt';
}

簡単ですね。コード見るとわかると思います。:-)