なぜか$this->Model->Saveがうまくいかないとき

かなりハマッタ。そしてこんなことに時間をかけてしまい、かなり悲しい。

フォーム→確認画面→完了画面の流れで、なぜかあるパターンだけDBにSaveできない現象が発生。とくにPOSTされたデータを見ても怪しいところはない。

確認画面では、下記のようにバリデーションを実行

$error = $this->validateErrors( $this->Model );

完了画面でも、同じようにバリデーションしてから、$this->Model->Saveしてました。
ただし、確認画面から完了画面へのPOSTデータの構造は、フォーム画面から確認画面へのものと異なるようにしてました。
そして、複数パターンのバリデーションチェックを行って、その後に、
$this->Model->Save
で保存したら、保存できないときがある。。。

結局、saveメソッド字にもバリデーションチェックをデフォルトで行っているのが原因で、Saveに失敗してました。
ということで、

$this->Siryo->save( $data, $validate=false )

というようにして、Saveメソッド字にはバリデーション実行しないようにして回避。もちろんSaveメソッドの手前でバリデーションチェックは独自にかけてます。