混乱したので整理してみた。
(注意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);