CakePHP備忘録4 invalidFieldsの記述位置に注意!

CakePHP 1.3.2】

【正しい位置】
モデルのインスタンスにデータをセットする前に。
つまり、『$this->set()』や『$this->data = $hoge』の前に。

【例:コントローラ】
if(!$this->Model->validates()){
//こちらが先!
$error_messages = $this->Model->invalidFields();

//こちらが後!
$this->set('data', $hoge);
}


【理由】
ライブラリのmodel.phpのinvalidFields()の中で、『$this->data』
参照されているからです。
invalidFields()の前に『$this->set()』や『$this->data = $hoge』で
この『$this->data』に値を入れてしまうと、出力されるエラーメッセージが
狂ってしまいます。

【/cake/libs/model/model.php
function invalidFields($options = array()) {
(略)
$data = $this->data;