CakePHPでハマッた件のメモ。
// コントローラー $hoge_fuga = 'test'; $this->set(compact('hoge_fuga')); // ここからビューとして・・・ <?php e($hoge_fuga); // testと表示されると思ったのに、表示されない! ?>
15分くらい悩んだ…。変数名にアンダーバーつける前まではちゃんと動いていたし、アンダーバーを付けたらダメというルールもなかった気がする(ずっと使ってたし。)
ここでミソなのが、compact関数です。
compact関数を使うと、アンダースコアがキャメルケースに変更されてしまうらしいです。
参照情報:
http://www.rainorshine.asia/2008/08/10/post602.html
ですので、アンダースコアの場合、compact関数を使わずにsetしましょう。
// コントローラー $hoge_fuga = 'test'; $this->set('hoge_fuga', $hoge_fuga); // ここからビューとして・・・ <?php e($hoge_fuga); // testと表示されました! ?>
以上です。
て、久々の更新がメモかよっ!