CakePHP1.2でvalidation
CakePHP1.2でフォーム入力値のvalidation。
モデルの$validateに検証ルールを設定しておいて、エラーの場合そのエラーに対応する文字列をビューで出そうと思ったんですが、かなり苦戦しました。本やサイトに書いてあることをやってもどうもうまくいかない。
試行錯誤の末、こんな感じでうまくいくことがわかりました。
modelの$validateで検証ルール(複数)を設定。
var $validate = array(
‘login_id’ => array(
‘rule1′ => array(
‘rule’ => ‘alphaNumeric’, // 英数字のみ
‘on’ => null, // 検証ルールを常時実行
‘message’ => ‘ログインIDは英数字のみで入力してください。’ // エラーメッセージ
),
‘rule2′ => array(
‘rule’ => array(’minLength’, 4),
‘on’ => null,
‘message’ => ‘ログインIDは4文字以上で入力してください。’
),
‘rule3′ => array(
‘rule’ => array(’maxLength’, 16),
‘on’ => null,
‘message’ => ‘ログインIDは16文字以下で入力してください。’
),
‘rule4′ => array(
‘rule’ => VALID_NOT_EMPTY,
‘on’ => null,
‘message’ => ‘ログインIDを入力してください。’
)
)
);
controllerでvalidateErrorsを使う。
// Userモデルのvalidationチェック
$this->User->set($this->data);
$errors = $this->validateErrors($this->User);
// エラーがあればログイン画面へ
if (!empty($errors)) {
$this->render(”login”);
return;
}
viewで$form->errorを使う。
echo $form->text(”User.login_id”);
echo $form->error(”User.login_id”);
トラックバック URL :
コメント (0)