[CakePHP]$session->flashを表示する際の注意

すごく初歩的な話で恐縮なんですが、過去何度もミスをしてるのでメモ。。笑わないでね

コントローラで

$this->Session->setFlash("なにがし");

とセットした値は/layout/default.ctpの

<?php $session->flash(); ?>

で、表示されるわけですが、
setFlashするときに第4引数にキーを与えて、自分で読み出すときに必ずやってしまうミスがこれ。

if ($session->check("Message.auth")) {
    // echoをつけちゃ駄目!!
    echo $session->flash("auth");
}

$session->flash();にechoをつけちゃうと$sessionヘルパーの返り値であるtrueまで表示しちゃうので、

<div id="authMessage" class="message">このページにアクセスする権限がありません</div>1

のように、余計な「1」が表示されます。

ホントくだらない事なんですが、Authコンポーネントをいじると毎回コレに引っかかっているような気がします…(苦笑)

スポンサーリンク
336x280_1
336x280_1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
336x280_1

コメント

  1. par より:

    CakePHP 1.3 では echo が必要なのでさらに注意です。
    http://c-brains.jp/blog/wsg/10/06/21-113032.php