LoginSignup
1
0

More than 5 years have passed since last update.

【サルが書く】cakephp2.xのbeforeFilter()でセットした変数を別のアクションで使う方法

Last updated at Posted at 2018-05-15

わきゃ

過ちを犯す

beforeFilter()で共通の処理を書こうとして、変数にいれよ〜♪と思い、

Controller/HogeController.php


class HogeController extends AppController {

    public function beforeFilter() {

        parent::beforeFilter();

        $hoge = 'hogehoge';

    }

    public function index() {

        echo $hoge;

    }
}

のように記述しました。

これで当たり前のように出力されると考えていたのですが、しかし!

7b8e2aab-8163-428f-8824-f5477f1116f3.png

見つからないと怒られてしまいます。

これは$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; 

    }
}

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0