2011-03-08 34 views
3

我有一個顯示評論表單的動作是評論/添加。如果表單不驗證,我不希望用戶進入評論/添加(該視圖不存在),但我希望他們留在同一頁面,並在那裏看到驗證錯誤。CakePHP重定向後保留驗證錯誤

但是,重定向到$ this-> referer()不起作用 - 驗證錯誤消失,只剩下flash消息。

public function add(){ 
    if (!empty($this->data)){ 
     $this->Comment->create(); 
     if ($this->Comment->save($this->data)){ 
      $this->Session->setFlash('Comment added.','success'); 
      $this->redirect($this->referer()); 
     }else{ 
      $this->Session->setFlash('There was a problem adding your comment. Please try again.','failure'); 
     } 
    } 
} 

如何保留驗證錯誤和表單數據重定向?如果這是不可能的,我還能如何解決這個問題?

非常感謝,

威爾

回答

0

只是刪除$這個 - >重定向($這個 - >引用者());共。

此外,如果您的域驗證設置正確,用戶如何進入重定向?如果輸入無效數據,save()函數將失敗,並且用戶永遠不會看到重定向,並且數據庫將永遠不會接受任何數據。

+1

對不起,我複製了錯誤的代碼:$ this-> redirect($ this-> referer());在if/else語句之後。刪除該行只會讓Cake嘗試顯示註釋/添加的視圖,就像我說的那樣不存在。 – Will 2011-03-11 09:00:53