参考にさせて頂いたページ
バリデーションを使おう!(3/5):初心者のためのCakePHP2.0 プログラミング入門
データバリデーション — CakePHP Cookbook 2.x ドキュメント
ホストマシン環境
ゲストマシン環境
- PHP 5.3.3
- CentOS release 6.6 (Final)
- cakephp2.5.6
- mysql Ver 14.14 Distrib 5.6.21, for Linux (x86_64) using EditLine wrapper
- Apache/2.2.15 (Unix)
今回の記事について
簡易的なバリデーションの実装を少しやってみて、require属性について少し調べたことから、詳細なバリデーション設定についてもフライング気味に少し調べたんだけど、その続きみたいな感じで今回の記事。
nameひとつに対するプロパティ
他にもあるのか、これで全部なのかはそのうち調べるとして、参考にさせて頂いたページで紹介されていたのは以下の5つ。
- rule
- required
- allowEmpty
- message
- on
利用可能なバリデーション・ルール
例えば以下のような記述の仕方
// ’rule’=>array(‘between’,最小値,最大値)
// ’rule’=>array(‘between’,5,10)
以下のようなルールが設定できる
- alphaNumeric (半角英数字のみ入力可能)
- between (一定範囲内の整数のみ入力可能)
- blank (空(未入力)を許可するかどうか)
- boolean (真偽値のみ入力を許可。これはtrue/falseや、あるいは0と1が使えます。)
- cc (クレジットカードの番号)
- comparison (比較演算子 <>=などの記号 を使った数字の比較を指定するもの。)
- date (日付)
- decimal (実数。小数点以下何桁まで許可するか。)
- email (メールアドレス)
- equalTo (特定の値と等しい場合)
- extension (ファイルの拡張子を指定)
- ip (IPアドレス)
- isUnique (値がユニークなもの)
- minLength (最小文字数を指定)
- maxLength (最大文字数を指定)
- money (お金の金額)
- multiple (
- inList (用意したリストの項目だけ入力可能にする)
- numeric (数値だけ)
- notEmpty (未入力はダメ)
- phone (電話番号)
- postal (郵便番号)
- range (指定範囲内の数値のみ)
- ssn (社会保障番号というもの)
- url (URL)
具体的な記述の仕方
公式サイトによると以下のように記述する。
以下のソースはデータバリデーション — CakePHP Cookbook 2.x ドキュメントから引用です。
class User extends AppModel {
public $validate = array(
'login' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'Letters and numbers only'
),
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Between 5 to 15 characters'
)
),
'password' => array(
'rule' => array('minLength', '8'),
'message' => 'Minimum 8 characters long'
),
'email' => 'email',
'born' => array(
'rule' => 'date',
'message' => 'Enter a valid date',
'allowEmpty' => true
)
);
}