第3回 Catalyst::Plugin::FormValidator::Lazy method Validation勉強
フィールド名とマッピングした検証関数の使用方法を勉強します。
目的
この機能は当初正規表現だけの実装だったのを、関数も使えるようにしようと実装しました。
設定
マッピングさせる為には、設定時に値を method にします。この例では、emailをマッピングしています。
また、マッピングさせる関数名のプレフィックスに、strict_ をつけます。以下のような感じです。
neko_web.yml
strict : email : method
Neko::Validator
sub strict_email { my ( $email ) = @_; return Email::Valid::Loose->address( $email ); }
これで、認証時に email は strict_emailでチェックされるようになりました。
簡単ですね。
+α dfvエラーを少し簡単に。
設定ファイルに、フィールド表示名を設定します。プロジェクトによっては、Catalyst::Plugin::I18Nを使用しても良いと思います。
neko_web.yml
label : email : メールアドレス post_code : 郵便番号 custom_invalid:
ループをまわして表示 :-)
root/common/dfv.tt
[% IF c.has_dfv_error %] <div> [% FOREACH item IN missing %] <li>[% c.config.label.${ item.key } %]を入力して下さい。</li> [% END %] [% FOREACH item IN invalid %] <li>[% c.config.label.${ item.key } %]の入力フォーマットが不正です。</li> [% END %] [% FOREACH item IN custom_invalid %] <li>[% c.config.custom_invalid.${ item.key } %]</li> [% END %] </div> [% END %]
root/email01.tt
[% INCLUDE common:dfv.tt %]
こんな感じで楽になりますね。