CakePHP1.2になって便利になってきたCakePHPのvalidation。
組み込みルールがかなり増えていたので、まとめ。
(日本語環境で使えないようなものは切り捨て)
必須項目(定番)
var $validate = array(
'title' => array(
'rule' => 'notEmpty',
'message' => '必須項目です。'
)
);
半角のアルファベットか数字のみ
var $validate = array(
'username' => array(
'rule' => array('alphaNumeric')
'message' => '半角英数字でご記入下さい。'
)
);
数字もしくは数値形式
var $validate = array(
'age' => array(
'rule' => 'numeric',
'message' => '半角数字でご記入下さい。'
)
);
URLであるか
var $validate = array(
'website' => array(
'rule' => 'url'
'message' => 'URLをお確かめ下さい。'
)
);
メールアドレス。引数に true を設定すると、メールサーバーのホストが存在するかどうかを確認する。
var $validate = array(
'email' => array(
'rule' => array('email', true),
'message' => 'メールアドレスを正しく入力してください。'
)
);
日付
var $validate = array(
'born' => array(
'rule' => 'date',
'message' => '正しいデータを「YY-MM-DD」のフォーマットで入力してください。',
'allowEmpty' => true
)
);
文字の長さ。
var $validate = array(
'login' => array(
'rule' => array('minLength', '8'),
'message' => 'ユーザ名は8文字以上にしてください。'
)
);
var $validate = array(
'login' => array(
'rule' => array('maxLength', '15'),
'message' => 'ユーザ名は15文字以下にしてください。'
)
);
指定した範囲の長さでおさまっていること。最小値と最大値は必須
var $validate = array(
'password' => array(
'rule' => array('between', 5, 15),
'message' => 'パスワードは5文字以上15文字以下にしてください。'
)
);
範囲
var $validate = array(
'number' => array(
'rule' => array('range', 0, 10),
'message' => '0より大きく10より小さい数を入力してください。'
)
);
ユニークであるかどうか(超便利!!)
var $validate = array(
'login' => array(
'rule' => 'isUnique',
'message' => 'このユーザ名はすでに使用されています。'
)
);
数字の比較
var $validate = array(
'age' => array(
'rule' => array('comparison', '>=', 18),
'message' => '18歳以上の方のみ対象です。'
)
);
var $validate = array(
'age' => array(
'rule' => array('comparison', 'greater or equal', 18),
'message' => '18歳以上の方のみ対象です。'
)
);
IPv4
var $validate = array(
'clientip' => array(
'rule' => 'ip',
'message' => 'IPアドレスを正しく入力してください。'
)
);
小数。パラメータは、小数点以下の桁数。もしパラメータを何も与えなかったら、データが浮動小数点であってもバリデーションは成功。
var $validate = array(
'price' => array(
'rule' => array('decimal', 2)
)
);
値と型の両方で確認
var $validate = array(
'food' => array(
'rule' => array('equalTo', 'cake'),
'message' => 'この項目は文字列で「cake」としなければなりません。'
)
);
ホワイトスペースのみ。ホワイトスペースは、半角スペースとタブ、復帰文字(\r)および改行文字(\n)を含む。
var $validate = array(
'id' => array(
'rule' => 'blank',
'on' => 'create'
)
);
指定したリストの中に含まれているか
var $validate = array(
'function' => array(
'allowedChoice' => array(
'rule' => array('inList', array('Foo', 'Bar')),
'message' => '「Foo」か「Bar」を入力してください。'
)
)
);