読者です 読者をやめる 読者になる 読者になる

$session->flash()が値を返す

PHP Smarty プログラミング

久しぶりにCakePHP(1.1系)を使ってたら、$session->flash()してるところで、

Please correct errors below.
1

とか出る。「1」って何?

デフォルトのlayout/default.thtmlは、

<?php if ($session->check('Message.flash'))
    {
	$session->flash();
    }
    echo $content_for_layout;
?>

となってるんだけど、これをSmartyにする時に、

{if $session->check('Message.flash')}
{$session->flash()}
{/if}
{$content_for_layout}

とやったのが間違いだった。これだと、

echo $session->flash();

と同じ意味になっちゃう。

$session->flash()はメッセージを出力するメソッドで、戻り値はbooleanなので、trueが返ってきたら1を表示してしまっていたみたい。でも以前は成功した時は戻り値無しだったんだけどな。

うーん。Smarty使ってる人はどうしてるんだろう。{php}{/php}の出番かな。