Helper中でコントローラにアクセスしたい時
generatorを使ってcontrollerだけを生成すると、helperも一緒に生成してくれるのは良いのですがAkActionViewHelperを継承してくれません。このため、$this->_controllerが使えないです。
例:
DOS> php .\script\generate Hoge The following files have been created: C:\...\app\controllers\hoge_controller.php C:\...\app\helpers\hoge_helper.php C:\...\test\functional\controllers\hoge_controller.php C:\...\test\fixtures\app\controllers\hoge_controller.php C:\...\test\fixtures\app\helpers\hoge_helper.php
<?php class HogeHelper { } ?>
なんで、ここに適当なメソッドつけて
class HogeHelper { function hoge() { $this->_controller->...
とやってみたら、「"_controller"なんてメンバ変数定義されてないよ」と怒られたんですね。「Fatal error: Call to a member function on a non-objec」です、ハイ。
というわけで、generatorでcontroller単体だけ生成したときのhelper内でcontrollerを使いたくなったら、AkActionViewHelperを継承させないと駄目みたいです。
class HogeHelper extends AkActionViewHelper { ...
これでおけ。