2012-09-09 78 views
0

我有類似這樣的內容:更改閃存消息的位置

控制器。

public function add() { 
     $this->layout = 'home'; 
     $this->Session->destroy(); 

     if ($this->request->is('post')) { 
       $this->Session->setFlash(__('xxx', true)); 

     } 
    } 

查看。 home.ctp

<div id="container"> 
     <div id="header"> 
     </div> 
     <div id="content"> 

      <?php echo $this->fetch('content'); ?> 
     </div> 

     <div id="footer"> 
      <?php echo $this->Session->flash(); ?> 
     </div> 
</div> 

我的問題是:爲什麼flash的消息沒有顯示在頁腳?好吧,我想要的是在窗體下面顯示消息,但爲了簡化問題,使用此代碼,消息也顯示在頂部。但應該在頁腳中。此外,如果我刪除

<?php echo $this->Session->flash(); ?> 

消息也顯示在頁面的頂部。

那麼,我該如何改變這個Flash消息的位置呢?

編輯:

<?php var_dump($this->fetch('content')); ?> 

輸出:

string '<div id="flashMessage" class="message"> The user xxxxx</div> 

<div class="users form"> 
<form action="/cake/users/add" id="UserAddForm" method="post" accept-charset="utf-8"><div style="display:none;"><input type="hidden" name="_method" value="POST"/></div> <fieldset> 
<legend> 
Add User 
</legend> 

<div class="input text required error"><label for="UserUsername">Username</label><input name="data[User][username]" maxlength="50" type="text" value="" id="UserUsername" class="form-er'... (length=1187) 
+0

無關緊要'Session :: flash()'被調用,所以這不是問題。這個請求是否一定要解僱?看起來有點奇怪,也會毀掉那裏的會話。 – Ross

回答

1

要設置佈局,以 '家',是這樣嗎?您是否在views/layouts下創建了home.ctp?我問你,因爲你顯示的視圖看起來像Cake的默認佈局(default.ctp)。

對我來說,代碼看起來很好配合,只要確保你顯示正確的佈局。

1

當我刪除我的<?php echo $this->Session->flash(); ?>我沒有收到Flash消息。我認爲你應該考慮@ clapas的答案。