Home > PHP | フレームワーク > CakePHPでのFormのバリデーション

CakePHPでのFormのバリデーション

こんなパスワード覚えられないよなぁ。

先日jQueryでのFormのバリデーションを書きましたが、CakePHPの場合、CakePHPで用意されています。


echo $html->input('User/name', array('type'=>'text','size'=>10));
echo $html->tagErrorMsg('User/name', '<span id="error_msg">名前は必須です</span>');

上記のようにhtmlhelperでtagErrorMsgを書いておけば、名前が無記入だった時、エラーメッセージ「名前は必須です」が表示されます。(tagErrorMsgを書いた場所に)
ただ、実は上記だけではだめでUserのModelに


class User extends AppModel {
	var $name = 'User';
	var $validate = array(
		'name' => VALID_NOT_EMPTY
		);
}

という感じに$validateを定義しておく必要があります。

VALID_NOT_EMPTYは空はエラーという意味で、

・VALID_EMAIL:メールアドレスの形式(aaa@aaa.com)じゃないとエラー

・VALID_NOT_EMPTY:空だとエラー

・VALID_NUMBER:数字じゃないとエラー

・VALID_YEAR:年(1000-2999)じゃないとエラー

があるっぽいです。

ちなみに入力エラーの場合、エラー箇所にエラーメッセージが表示されて、正常なところは値が保存されます。
(入力されていた値がフォームに入力されたままになってる)
これは非常に便利なんですが、いちいちクリアしたいと言う場合があったので、そのときは


echo $html->input('User/name', array('type'=>'text','size'=>10, 'value'=>''));
echo $html->tagErrorMsg('User/name', '<span id="error_msg">名前は必須です</span>');

という感じで、valueに空文字列を与えておけばOKでした。

以上

Comments:1

匿名 08-02-05 (火) 18:06

Add Your Comment

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://red-treasure.com/report/wp-trackback.php?p=84
Listed below are links to weblogs that reference
CakePHPでのFormのバリデーション from コスミー報告書[社外秘]

Home > PHP | フレームワーク > CakePHPでのFormのバリデーション

Search
Feeds
Meta
 合計:000304
 今日:0022 昨日:0113

Return to page top