2014-01-13 65 views
0

我是CakePHP的新手,正在做我的第一個應用程序 - cakephp教程中的第一篇博客。一切都很好,但有一件事讓我煩惱。當我在我的模型中定義驗證規則時,驗證正在工作。不同網頁瀏覽器中的不同驗證信息

但是每個網頁瀏覽器都顯示不同的信息。例如,用捷克語(我是捷克語)顯示消息,Chrome顯示「請填寫此字段」和Internet Explorer顯示「此字段不能留空」。所以我試着翻譯消息(通過添加參數消息進入模型驗證)。這是工作,但只有在互聯網瀏覽器,其他瀏覽器沒有改變。有什麼辦法,如何在所有瀏覽器中使用相同的驗證消息?

驗證模型:

public $validate = array(
     'title' => array(
      'rule' => 'notEmpty', 
      'message' => 'Please fill.....' 
     ), 
+0

該字段是通過PO文件自動翻譯的。見文件。 – mark

+0

這似乎是輸入的'required'屬性的一個問題(試試這個例子http://www.wufoo.com/html5/attributes/09-required.html,它給出了不同瀏覽器中的不同錯誤)。據我所知,這是獨立於cakephp或語言實施。你可以嘗試像這樣改變它http://stackoverflow.com/questions/5272433/html5-form-required-attribute-set-custom-validation-message – Nunser

+0

對於Nunser:謝謝,我會試試.... – telman

回答

0

我認爲你是在談論客戶端驗證的消息。如果我是正確的,你看到的消息是由你的瀏覽器創建的,並且是瀏覽器的依賴。 Cake只是通過在輸入標籤中設置所需的屬性來告訴瀏覽器該字段是必需的。

相反,蛋糕所做的實際驗證是作爲服務器端的。如果您的瀏覽器發送數據到服務器,然後蛋糕驗證數據並返回錯誤消息

0

有兩個檢查到位。第一個(你看到的那個)是客戶端的檢查。輸入字段有一個必需的參數。所以瀏覽器知道這個字段不能是空白的,而是說它的語言。到目前爲止,沒有任何信息發送到服務器填寫併發送表格後,第二張支票就在cakephp驗證的地方。

這種嘗試:

'title' => array(
     'kosher' => array(
      'rule' => 'email', 
      'message' => 'Please make sure your email is entered correctly.' 
     ), 
     'required' => array(
      'rule' => 'notEmpty', 
      'message' => 'Please enter your email.' 
     ) 

然後你會看到:1)如果你輸入任何內容,然後出現瀏覽器消息(客戶端),2)如果你輸入一些文字,這是沒有電子郵件,那麼上面的消息就會出現('請輸入您的電子郵件地址'。)