- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Perl-Catalyst/モデル/FormValidator-Simple へ行く。
- 1 (2007-04-25 (水) 13:50:57)
- 2 (2009-06-19 (金) 21:28:07)
- 3 (2011-03-24 (木) 16:02:29)
- 4 (2011-06-03 (金) 15:52:08)
ヴァリデーションの仕方
設定
myapp.ymlは以下のようにする。
validator: plugins: - Japanese options: charset: euc messages: conf/messages.yml
messages.ymlに「名前は10字以内です」のようなメッセージを書く。
member: e_mail: DEFAULT: メールアドレスが正しくありません。 login_id: DEFAULT: ログインIDが正しくありません。 LENGTH: ログインIDは10-12文字にする必要があります。 REGEX: ログインIDは半角英数字、ハイフン、アンダースコアで入力してください。 password: DEFAULT: パスワードが正しくありません。 LENGTH: パスワードは10-12文字にする必要があります。 REGEX: パスワードは半角英数字、ハイフン、アンダースコアで入力してください。
アクションクラス
$c->form( login_id => [qw/NOT_BLANK/, ['REGEX', qr/[?w?d-]+/], [qw/LENGTH 10 12/]], password => [qw/NOT_BLANK/, ['REGEX', qr/[?w?d-]+/], [qw/LENGTH 10 12/]], name => [qw/NOT_BLANK/], namekana => [qw/NOT_BLANK HIRAGANA/], zip => [qw/NOT_BLANK ZIP_JP/], prefec => [qw/NOT_BLANK/], tel => [qw/NOT_BLANK/, ['REGEX', qr/[?d-]+/]], e_mail => [qw/NOT_BLANK EMAIL_LOOSE/], sex => [qw/NOT_BLANK INT/], birth => [qw/NOT_BLANK/, ['DATETIME_STRPTIME','%Y-%m-%d']], ); if ($prefec) { if (! grep {$prefec eq $_ } @{$c->config->{prefectures}}) { $c->set_invalid_form(prefec => 'PREFECTURES'); } } $c->stash->{template} = 'member/regist.tt2' if $c->form->has_error;
テンプレート
[% IF Catalyst.form.has_error -%] <h3>エラー!!</h3> <ul> [% FOREACH mesg IN Catalyst.form.messages('member') -%] <li>[% mesg %]</li> [% END -%] </ul> [% END -%]
参考
- ↓ここ見ると分かる。
- http://search.cpan.org/~lyokato/Catalyst-Plugin-FormValidator-Simple-0.12/lib/Catalyst/Plugin/FormValidator/Simple.pm
- ↓それ以外の参考。
- http://search.cpan.org/~lyokato/FormValidator-Simple-0.22/lib/FormValidator/Simple.pm
- http://search.cpan.org/~lyokato/FormValidator-Simple-Plugin-Japanese-0.04/lib/FormValidator/Simple/Plugin/Japanese.pm
- http://search.cpan.org/~markstos/Data-FormValidator-4.50/lib/Data/FormValidator/Results.pm