$this->set(compact('foo')); するときの注意
過去にハマってことを思い出したので、メモ。
CakePHPで、ControllerからViewへ値を渡すときはsetメソッドを使います。
複数の値を渡すときは、なんどもsetするのはコードの見通しも悪くなるのでcompactを使って一気にセットしたりします。サンプルは以下のような感じで。
<?php class AppController extends Controller { 〜 省略 〜 $this->set(compact('foo','bar'));
上記の例ならとくに問題無いのですが、値に_(アンダースコア)が入った場合が要注意です。Viewで受け取るときはそのまま受け取れません。
- app_controller.php
<?php class AppController extends Controller { 〜 省略 〜 $this->set(compact('foo_bar'));
- view
<?php echo $fooBar ?>
こうやってやらないとsetした値を呼び出すことができません。