flashメソッドが上手く動かない?

忙しいんだけど、暇なときにぼちぼちCakePHPのチュートリアルをやっていて、昨日完了した。一気にやれば数時間で終わるんだけど、あまり気分が乗らなかったりして1ページずつやったりしてたので。

特にハマったところとかはなかったけど、1点だけ気になったところがあったのでメモ。

ブログ記事に削除や編集を終わった後に、メッセージを表示し、その後に記事の一覧ページに戻るはずなのだが戻らない。例えば更新完了後は以下の$this->flashでメッセージを表示した後に /posts にリダイレクトされるはず。

		if ($this->Post->save($this->data['Post'])) {
$this->flash('Your post has been updated.','/posts');
}

リダイレクトされずにその時に実行されたSQLとかが表示されていたので、原因はまぁリダイレクトのヘッダーを送信する前にSQLを表示しているせいなんだろうなぁと思った。

で、解決方法としてはデバッグレベルを変更するだけ。具体的にはapp/config/core.phpの以下の行を変更する。

Configure::write('debug', 2);

値を1にすると、flashメソッドの動作が「メッセージを表示し、それをクリックすると次の画面に遷移する」という感じになり、値が0の場合は通常通りメッセージが一定秒数表示され次の画面に自動的に遷移する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です