C::P::FillInForm と C::P::FormValidator::Simple の連携方法
C::P::FillInForm は、C::P::FormValidator が組み込まれており、かつ、エラーが存在する時に、自動でパラメータを Fill in してくれる。
個人的には、C::P::FormValidator::Simple が好みなので、C::P::FillInForm の finalize を、少しだけ書き換えた。
ついでに、C::P::DefaultEnd を使っていると、SYNOPSIS に表記されている使い方がし難いので、$c->stash->{fdat} に値が設定されていると Fill in されるようにもしてみた。
sub finalize { my $c = shift; if ( $c->isa('Catalyst::Plugin::FormValidator') || $c->isa('Catalyst::Plugin::FormValidator::Simple') ) { $c->fillform if $c->form->has_missing || $c->form->has_invalid || $c->stash->{error}; } if ( $c->stash->{fdat} ) { $c->fillform( $c->stash->{fdat} ); } return $c->NEXT::finalize(@_); }