foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

CakePHP Model::beforeSave() は保存内容のみを変更する

環境

調査

モデルの保存前にコールバックされるメソッドである Model::beforeSave() でモデルデータを変更し、バリデーション エラーが発生した場合、beforeSave() での変更内容はビューに反映されるのか?

結果

反映されない。

考察

beforeSave() の有用な利用方法として、モデルの保存前にデータを加工する処理を記述するとよい。
例えば、画面項目から従属する項目値を計算する処理をビジネス ロジックとしてモデルへ集約できる。