2012-09-09 3 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> 

제 질문은 : 플래시 메시지가 바닥 글에 표시되지 않는 이유는 무엇입니까? 글쎄, 내가 원하는 것은 양식 아래에 메시지를 보여 주지만 문제를 단순화하기 위해이 코드를 사용하면 맨 위에 메시지가 표시됩니다. 하지만 바닥 글에 있어야합니다. 또한 내가 삭제하면

<?php echo $this->Session->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(); ?>을 삭제하면 플래시 메시지가 표시되지 않습니다. 나는 당신이 @ clapas의 대답을 고려해야한다고 생각합니다.