2010-12-06 72 views
4

我在引用用戶控制器和login()和register()操作的元素中有我的登錄和註冊表單。例如,當我在模式或頁面控制器操作中使用此元素時,當用戶有驗證錯誤(即模型驗證)時,它會重定向到登錄/註冊操作頁面(而不是更新元素)。CakePHP元素錯誤處理問題

我意識到我可以使用Javascript/JQuery驗證,但有什麼方法讓CakePHP的模型驗證更新元素,而不是在發生錯誤時重定向到原始操作的頁面?

回答

3

我已經用this PersistentValidation component解決了這個問題。您設置的方式是將PersistentValidation組件包含在您的UsersController以及您計劃包含登錄/註冊元素的任何其他控制器中。

您的登錄/註冊表格將提交給各自的控制器操作。如果驗證失敗,該操作將重定向回引用頁面。例如:

if (!$validated) { 
    $this->redirect($this->referer()); 
} 

您重定向的操作調用的視圖將自動以前一個請求的驗證錯誤進行播種。

這可以通過將驗證錯誤存儲在會話變量中,並在重定向後檢索這些錯誤,使其可用於當前請求的視圖/元素來實現。你可以自己做,但組件使它很容易使用。

+0

輝煌!謝謝 – Justin 2010-12-06 21:13:51