FormValidator::Simpleでヴァリデーション設定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 -%] ヴァリデーションプラグインの作成
参考 |
|