ブログが続かないわけ

この日記のはてなブックマーク数
Webエンジニアが思うこと by junichiro on Facebook

FormValidator::Simple の使い方(Catalystにて)

このエントリーを含むはてなブックマーク hateb
FormValidator::Simple の使い方(Catalystにて)

FormValidator とはその名前の通り、Formへの入力値のValidation(要は値のチェック)を簡単に行ってくれる優れものです。これさえあれば入力値のチェックなんて言うつまらない部分はちょちょいのちょいです。

値が入力されているかどうかの簡単なチェックから、Emailとしての形式が正しいかどうかのチェックなどの複雑なチェックまで一通り揃っています。DBにその値が既に存在するかどうかのチェックなんかもたった1行でできちゃったりするのです。(要プラグイン)

しかも、どうしても複雑なチェックをしたい場合には簡単に拡張プラグインを自分で書くこともできるので、これで対応できないなんてことはないでしょう。しかも拡張プラグインを自分で書いておけば、次回から同じようなチェックはそれを使いまわせますしね!

具体的に良く使うやつを列挙してみましょう。

  • 値が入力されているかどうか?

  • 日本の電話番号の形式として正しいか?(自分で書くと面倒ですね)

  • 日本の郵便番号の形式として正しいか?

  • メールアドレスの形式として正しいか?

  • 携帯メールアドレスの形式として正しいか?

  • 数字か?

  • カタカナか?

  • ひらがなか?

  • URLの形式として正しいか?

  • DBにその値が存在しないか?(ユーザー登録のフォームとかで使える!)

  • 文字数チェック

  • 日付、時間の形式チェック


詳細は http://search.cpan.org/dist/FormValidator-Simple/lib/FormValidator/Simple.pm

使い方は以下の通り。
まず設定ファイル。
---
validator:
plugins:
- Japanese
- DBIC::Unique
options:
charset: euc
dbic_base_class: MyApp::Model::DBIC
messages: messages.yml
ここでは、日本語の処理とDBに値があるかどうかのUniqチェックをするためにプラグインを使う設定にしています。

messages.yml の設定はこんな感じ
---
login:
user_name:
NOT_BLANK: ユーザー名 を入力して下さい。
LENGTH: name は 1 〜 10 バイトで入力して下さい。
password:
NOT_BLANK: password を入力して下さい。
LENGTH: pass は 4 〜 10 バイトで入力して下さい。
name_pass:
LOGIN: ログインエラー。


MyApp.pm の方にはValidatorを使う旨を記述してください。
use Catalyst qw(
・・・
・・・
FormValidator::Simple
・・・
・・・
);


あとは実際にチェックするところでこんな風に書くだけ。
sub default : Private {
my ( $self, $c ) = @_;

$c->form(
user_name => [qw/NOT_BLANK/, [qw/LENGTH 1 100/]],
mail => [qw/NOT_BLANK EMAIL_LOOSE/, [qw/LENGTH 1 100/], [qw/DBIC_UNIQUE MastUser mail_address/]],
password => [qw/NOT_BLANK/, [qw/LENGTH 4 100/]],
{ passwords => [qw/password repassword/] } => ['DUPLICATION'],
);

}

この例では、
user_name が未入力ではなく、長さが1〜100バイトかチェック
mailが未入力ではなく、Emailとしての形式が正しく、長さが1〜100バイトかチェック
mail_address がDBに存在しないかUniqチェック
password が未入力ではなく長さが4〜100バイトかチェック
password とrepassword の値が同じかチェック
(確認用にもう一度入力させたときのチェックだね)

これだけでこれらのチェックが完成してしまいます。

とにかく便利だ。

参考サイト

この記事のトラックバックURL
http://en.yummy.stripper.jp/trackback/333006
トラックバック
Catalyst::Model::DBIC::Schema でとFormValidatorのUnique チェックでつまづいた方へ
先日のエントリでCatalyst::Model::DBICはあまり推奨されていないようですので、Catalyst::Model::DBIC::Schema を使うようにしましょうなんてことを書いたのですが、その後困ったことが起きました。 FormValidator::Simpleを使っていてUniqueチェックがうまくいかな
| ブログが続かないわけ | 2006/07/30 6:46 PM |
FormValidator::Simple で携帯のアドレスをはじく!(Catalyst)
以前にFormVlidator::Simple の使い方を説明しましたが、今回はPluginを使って携帯のアドレスをはじく方法を説明します。 Webアプリを作るうえで会員登録という機能は良く出てくると思います。そこでメールアドレスを登録してもらいたいのですが、システムから送るメ
| ブログが続かないわけ | 2006/09/14 12:05 PM |
コメント
FormValidator::Simple で簡単に携帯のメールアドレスをはじく方法を載せました。

http://en.yummy.stripper.jp/?eid=399239
| junichiro | 2006/09/14 12:11 PM |









関連情報