モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

CakePHPでTwigView使う時flashが表示されない問題

CakePHPでTwigViewを使っている時に、setFlashで設定したメッセージの表示だけがされない、という問題がおきました。
もちろん、TwigViewを使わずに通常の.ctpのテンプレートを使っている場合には問題なく表示されます。


これ、以前書いたこのエントリーの話と同じ問題でした。

CakePHPでTwigView使う時FormやHtmlヘルパーが使えない - モーグルとカバとパウダーの日記


TwigViewを使っていると、暗黙で使えるようになっていたものが、ちゃんと宣言しないと使えないことが起こります。

なので、各コントローラーで

    public $helpers = array('Session', 'Html', 'Form');

「Sessionヘルパー」を呼んでやることで解決しました。


もしくはTwigView使う時はもう、AppController内に設定してしまったほうが良いかもしれません。

例えばTwitterBootstrapプラグインでは、AppController内に

class AppController extends Controller {

    public $helpers = array(
        'Session',
        'Html' => array('className' => 'TwitterBootstrap.BootstrapHtml'),
        'Form' => array('className' => 'TwitterBootstrap.BootstrapForm'),
        'Paginator' => array('className' => 'TwitterBootstrap.BootstrapPaginator'),
    );

のように設定することを薦めていますし。