- バリデーションの設定はModel内の$validate配列を定義して行う。
- save()の実行時に自動的にバリデートのチェックを行う
バリデーション定義例
<?php class User extends AppModel { var $name = 'User'; var $validate = array('フィールド名' => 'ルール名'); } ?>
'フールド名' => 'ルール名'の連想配列でOK
var $validate = array( 'login' => 'alphaNumeric', 'email' => 'email', 'born' => 'date' );
1つの項目に対して複数のバリエーションルールを適用する場合は
'フールド名' => array( 'rule' => 'ルール', 'message' => 'エラー時に表示するメッセージ' )
var $validate = array( 'login' => array( 'alphanumeric' => array( 'rule' => 'alphaNumeric', 'required' => true, 'message' => 'Alphabets and numbers only' ), 'between' => array( 'rule' => array('between', 5, 15), 'message' => 'Between 5 to 15 characters' ) ), 'password' => array( 'rule' => array('minLength', '8'), 'message' => 'Mimimum 8 characters long' ), 'email' => 'email', 'born' => array( 'rule' => 'date', 'message' => 'Enter a valid date', 'allowEmpty' => true ) );
ルール名にはCakePHPにてあらかじめ定義されている名称を入力する。
notEmpty | 空でないか |
alphaNumeric | 半角のアルファベットか数字のみ許可 |
between | データの長さが指定された範囲内かどうか。最小値と最大値は必須。「<」ではなく「<=」を使用。日本語は1文字=2とカウント |
blank | データが空かホワイトスペースのみで構成されているかどうか。半角スペースとタブ、復帰文字(carriage return)および改行文字(newline)を含む |
cc | クレジットカードの番号として適切かどうか。array('cc', タイプ, 真偽値, 正規表現) |
comparison | 数字の比較。「is greater (〜より大きい)」「is less (〜より小さい)」「greater or equal (〜以上)」「less or equal (〜以下)」「equal to (〜と等しい)」「not equal (〜と等しくない)」 |
custom | 独自のバリデーションルールを正規表現で設定する |
date | 日付として適切かどうか |
time | |
boolean | |
decimal | 小数かどうか |
Eメールアドレスとして適切かどうか | |
equalTo | データと第一引数が、値と型の両方で同じかどうか |
extension | 指定したファイル名の拡張子が指定したものにマッチするか。拡張子は配列で指定可能。 |
file | 保留 |
ip | IPv4形式かどうか |
minLength | データの長さが指定値より小さくないか |
maxLength | データの長さが指定値より大きくないか |
money | 値が金額として適当か。 |
multiple | 複数選択する入力のバリデーションに使用します。パラメータとして「in」「max」そして「min」をサポートします。 |
numeric | 数字もしくは数値形式かどうか |
phone | アメリカの電話番号の形式であるか |
postal | 郵便番号かどうか。対応している国は、アメリカ(us)、カナダ(ca)、イギリス(uk)、イタリア(it)、ドイツ(de)、ベルギー(be) |
range | 指定した範囲にデータがおさまるかどうか(データ長ではなく数値として) |
ssn | 社会保障番号であるかどうか。対応している国は、アメリカ(us)、デンマーク(dk)、オランダ(dk) |
url | 正しいURLの形式であるかどうか。http(s)、ftp(s)、file、news、gopher のプロトコルに対応 |
inList | データが指定されたリストに含まれているかどうか |
userDefined | |
isUnique | 与えられた値が他の行で出現せず、ユニークであるかどうか |
このページへのコメント
xEoCKL Thank you for your blog.Really looking forward to read more. Really Cool.
Dj2w7s Looking forward to reading more. Great blog.Really looking forward to read more. Cool.
OqqMgn <a href="http://ynugwigjsoea.com/">ynugwigjsoea</a>, [url=http://kivoagxwvlmf.com/]kivoagxwvlmf[/url], [link=http://eamntnclhmhv.com/]eamntnclhmhv[/link], http://xywliboagdcw.com/