CakePHP2.3でモデルバリデーションを試す


CakePHPのモデルの代表的な機能でバリデーションがあります.

カンタンなバリデーションルールを記述するだけで,開発者は正規表現などを意識しなくてもある程度の入力チェックを行えるようになります.

第7回演習の動作例ではこのバリデーションを使っているので解説します.

この動作例ではユーザー登録をする画面を用意し,入力を行った際にルールに適さない内容があった場合は登録をキャンセルする.という内容です.

1. Entriesコントローラー作成

まずはコントローラーを準備しましょう. Userモデルにユーザを登録していきます.

2.モデルにvalidateを設定

次に重要なモデルです.  モデルには$validateというプロパティを作成し,そこにフィールド名とルールを記述します.下記例ではname,email,passwordフィールドに対して,ルール設定しています.

  • rule : バリデーションルールを記述します.(参考: CakePHPのバリデーションルールまとめ | asklife )
    • 例1 alphaNumeric: 英数字のみ
    • 例2 email: メールアドレスのみ
    • 例3 between: 文字数指定
  • required : 必須項目かどうか(true: 必須項目, false: 必須項目ではない)
  • alloEmpty : 空ポストを許すかどうか
  • message : 失敗したときのメッセージ

※この他にも指定の仕方はいくつかあります.

 

3. ビューの作成

 

 4.アクセスしてみる

入力してみて,ルールに適さない内容で入力してみましょう.指定したメッセージが表示され,データベースに入力内容が登録されていなければ正しくバリデート処理が行われています.