わきゃ
過ちを犯す
beforeFilter()で共通の処理を書こうとして、変数にいれよ〜♪と思い、
Controller/HogeController.php
class HogeController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$hoge = 'hogehoge';
}
public function index() {
echo $hoge;
}
}
のように記述しました。
これで当たり前のように出力されると考えていたのですが、しかし!
見つからないと怒られてしまいます。
これは$hogeのスコープがbeforeFilter()メソッド内で閉じてしまっているのが原因です。
一筋の光が
以下の書き方をすれば、変数が使えるようになります。
Controller/HogeController.php
class HogeController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->hoge = 'hogehoge';
}
public function index() {
echo $this->hoge;
// 変数に再度入れたい場合はこのようにしてください
$fuga = $this->hoge;
echo $fuga;
}
}
参考文献