Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

cakephp3 での render 指定と変数設定

cakephp3 の controller の action 中で,template ファイルを使い分けたい場合がありますよね.

その際,

$this->render('hoge');

と記述すれば template として hoge.ctp が使われるようになるかと思います.

けど,ちょっと注意点が.

render 記述を使うと,その call 時点で描画されてしまうようで,その後に書かれた記述は実行されないみたい.

ということで,必要な変数設定などは $this->render('hoge'); 記述の前にする必要があります.

$this->set('foo', $foo);
$this->render('hoge');

ですね.

$this->render('hoge');
$this->set('foo', $foo);

ってやると,hoge.ctp 中で $foo を参照しようとすると,未定義でエラーになります.

ちょっと過去にはまったことがあったので,備忘録として書いておきます.