cake焼きました(20)
dbにテーブルを追加したのにモデルに反映されない。
cakephpはテーブルを追加すると、自動で認識してbakeでモデルを作成できますが、
bakeコマンドを使っても追加したテーブルが表示されないという事態が起きました。
bakeの前に自分でmodelを作成していたのですが、
作製後に既存のコントローラーで
var $uses = array('Hoge', 'Test'); //追加したテーブルはtestsテーブルとします
と宣言して処理を書くと、何をやっても
Error: The requested address '/hoge' was not found on this server.
と言われてしまいます。
なのでモデルが原因かと思い、bakeコマンドでモデルを作成できるか試したら
テーブルのリストに追加したはずのtestsテーブルが載っていない状態でした。
この事を相談すると、キャッシュが問題で
app/tmp/cache/models 以下を消せばよいとのこと。
消したら見事モデルとして反映されてました!
なるほどmodelの情報をキャッシュとして持ってしまっているのですね。
symfonyもsymfony ccしなければ変更が反映されない事が多々あるので、
フレームワークのキャッシュには要注意ですね。