2012-08-15 60 views
0

我對cakephp相當陌生,所以我可能會在這裏設置錯誤。在不同的控制器中處理驗證錯誤

我創建了一個簡單的博客,其中包含評論和帖子(以及其他內容)。

我可以在查看提交回評論控制器(/ controllers/comments/add)的帖子時添加評論。

我遇到的問題是,如果存在驗證錯誤,它會在/ views/comments/add視圖中顯示它們,而不是在視圖中添加comment/views/posts/view。

這一定是一件很常見的事情,我會想,我哪裏會出錯?

回答

0

你可以問評論控制器的add方法來呈現不同的看法:

$this->render('/Posts/view'); 

但隨後的過程中,你需要確保所有的數據,該「帖子/圖/」文件需求通過評論控制器的添加方法收集和設置。

相反,我會做的只是通過AJAX提交評論表單(您瞭解AJAX?)。這樣,您可以渲染評論/添加視圖(或其相應的部分)而無需刷新頁面的其餘部分。

當然,禁用Javascript的用戶仍然需要轉到其他頁面來更正錯誤。但是這不應該經常發生,並且您可以隨時將它們重新導向到Posts頁面,一旦它們成功提交了他們的評論。

如果你是新來CakePHP的,你要使用AJAX,你可能會想使用這樣的地方:

if ($this->request->is('ajax')) { 
    $this->render('/Elements/ajax_comment_form'); 
} 
// If it's not AJAX it'll fall through and show the regular comment add.ctp view 
+0

每個註釋的形式通過Ajax調用當前加載。還沒有看到哪裏做異步的帖子,但這是我最終想做的。去看看,以及使用$ this-> render(這是我已經如何渲染視圖)。 – 2012-08-16 09:24:00