CakePHP 2.0 で、フラッシュが期待どおりにレンダリングされないという問題が発生しています。私の構成の次の例を考えてみましょう。
app\View\Layouts\default.ctp:
<!-- フラッシュが下にエコー --> <div id="main_flash"> <?PHP echo $this->Session->flash(); ?> </div>
app\View\Objects\index.ctp:
<!-- ここではフラッシュはエコーされません -->
app\View\Object\edit.ctp:
<!-- フラッシュが下にエコー --> <div id="edit_flash"> <?PHP echo $this->Session->flash(); ?> </div>
mysite.com/objects/
に移動すると、フラッシュ (設定されている場合) が正常にレンダリングされます。
<div id="main_flash">ハローワールド!</div>
これで、オブジェクトmysite.com/objects/edit/12を編集するたびに、フラッシュは次のようにレンダリングされます。edit.ctpにエコーを追加する前に、フラッシュはまったくレンダリングされませんでした。
<div id="edit_flash">ハローワールド!</div>
個々のビュー ファイルでフラッシュをエコーしなくても、常に default.ctp からフラッシュをレンダリングする方法はありますか? 現在、1 つの flash ステートメントが機能し、もう 1 つのステートメントは無視されます。