もうCakePHP1.1を好き好んで使うことはないのだけど、既に作られてしまっているものがあるので頭の片隅には置いておく。
※cakephp1.1限定の現象です。(というかデフォルトの設定です)
以下のような処理を実行したところ、想定と違う挙動をした。
- 現在のデータ数を取得
- データを登録
- 現在のデータ数を登録
希望→この場合3.で取得したデータ数は1.で取得したデータ数+1になるはず
現実→が同じデータ数が返ってくる。
DBを確認したところデータは正常に挿入されているので、バグか?と思いCakePHPのドキュメントを確認。
「登録・更新したデータを1つの Action の処理内でデータを取得しようとすると、CakePHP1.1 ではクエリーがキャッシュされるので、取得できません。」
(具体的には「$this->[モデル名]->cacheQueries = true; 」がデフォルトらしい)
ということで、この部分を処理の直前にfalseにして一件落着。
※1.2ではfalseがデフォルトとなっているので、そこまで意識する必要はないのかも。。