第2回 Catalyst::Plugin::FormValidator::Lazy dfv_push_invalid編

概要

FormValidatorのチェックはあくまで、フォーマットであり、それをパスした後にDFVのエラーにしたい時がある。
例えば、登録の処理で、使用したメールアドレスはすでの登録されていたときなど。そういう時の為に、$c->dfv_push_invalid があります。

使い方

こんな感じで設定。

( Neko::Web::Controller::Root->zip02_do() 内)

  if( !$res->is_success) {
        $c->dfv_push_invalid('api_not_available');
        return;
  }

使う時。

root/zip02.tt

[% IF c.has_dfv_error %]

<div style="color:red;margin:10">
    [% IF missing.post_code %]郵便番号を入力して下さい。<br>[% END %]
    [% IF invalid.post_code %]郵便番号のフォーマットが不正です。<br>[% END %]
    [% IF custom_invalid.api_not_available %]APIが使用できない状態です。また後で。<br />[% END %]
    [% IF custom_invalid.not_found %]住所がみつかりませんでした。<br />[% END %]
</div>

[% END %]

簡単だね。