とあるセクシーなデータ分析官

を目指す渋谷で働くソーシャルゲーム分析者の卵

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の情報をキャッシュとして持ってしまっているのですね。
symfonysymfony ccしなければ変更が反映されない事が多々あるので、
フレームワークのキャッシュには要注意ですね。