CakePHPでエラーチェックを行う時の注意

混乱したので整理してみた。

(注意1)
validates()、validates() は別物です。
validateErrors()、validationErrors は別物です。

(注意2)
validationErrorsに値が入っているはずなのにエラーメッセージが表示されない時はスクリプトファイルの文字コードが違う場合があります。
pr()やvar_dump()で表示するとすぐに文字化けが分かります。

Model::validates()
  バリデーションを実行しエラーがないときは「真:true」を返す
  一つでもエラーがあるときは「疑:false」を返す

Controller::validates()
  バリデーションエラーの数を返す

Controller::validateErrors()
  バリデーションエラーのメッセージを取得する

$this->[Model名]->validationErrors
  バリデーションエラーのメッセージを取得する
  

■使用例(コントローラ内記述)
【validates()】
$this->[コントローラ名]->set($this->data);
if($this->[モデル名]->validates()) {
// true:エラーがない時の処理
} else {
// false:エラーが一つでもある時の処理
}

【validate()】
$this->[コントローラ名]->set($this->request->data);
if($this->validate($this->[モデル名]) > 0) {
// エラーがある時の処理
} else {
// エラーがない時の処理
}

【validateErrors()】
$this->[コントローラ名]->set($this->request->data);
$errors = $this->validateErrors($this->[モデル名]);
if($this>validate($this->[モデル名]) > 0) {
// エラーがある時の処理
} else {
// エラーがない時の処理
}

【validationErrors】
$this->set( ‘valerror’, $this->[Model名]->validationErrors);

Webアプリ開発を加速する CakePHP2定番レシピ119

This entry was posted in CakePHP. Bookmark the permalink.

Comments are closed.