CakePHPで開発をしている時にデータベースの一部のデータが更新されないということがありました。
データベースのフィールドを追加し、CakePHPでデータを更新すると新しく追加したフィールドだけが更新されないのです。
しかし、他のフィールドは正常に更新されます。
どこか間違えている箇所があると思い、何度もソースを見直したのですが、原因が分からずにいました。
なので「app」配下のディレクトリを一つ一つ確認していたら、怪しいと思ったファイルを発見しました。
下記のディレクトリ内にデータベースのテーブル構造を格納するモデルのキャッシュファイルがあったのです。
app/tmp/cache/models
そのキャッシュファイルを削除したら正常にデータが更新されました。
忘れないように、下記にCakePHPでデータベースが更新されない時の対処方法をメモします。
■ データベースが更新されない時の対処方法
CakePHPではデータベースのテーブル構造を格納するキャッシュファイルが作成されます。
データベースのフィールドを追加した場合、キャッシュファイルが前の情報のままだとデータが正しく更新されません。
その際は下記のディレクトリのキャッシュファイルを削除します。
app/tmp/cache/models
削除すると新しいキャッシュファイルが作成され、正常に更新することができるようになります。
CakePHPでデータベースのテーブルの構造を変更した場合は、キャッシュファイルを削除するのが良いと思います。