2012-03-08 110 views
1

就像在問題的標題描述的 - 我想有默認的錯誤消息,除了NoRecordExists一個所有驗證。如何覆蓋Zend_Validator錯誤訊息?

在它下面的示例代碼似乎自定義消息將覆蓋所有其他驗證消息,並且如果例如第二條件失敗(Alnum)用戶越來越「用戶名已使用」的錯誤消息。

$username= new Zend_Form_Element_Text('username'); 
$username->setLabel('User name:') 
->setRequired(TRUE) 
->addValidator('NotEmpty',TRUE) 
->addValidator('Alnum',TRUE) 
->addValidator(new Zend_Validate_Db_NoRecordExists(array(
        'table'=>'users', 
        'field'=>'username' 
       ))) 
->addErrorMessages(array(
Zend_Validate_Db_NoRecordExists::ERROR_RECORD_FOUND=>'Username already used' 
)); 
+0

可能的重複[清除Zend表單元素中的驗證錯誤消息](http://stackoverflow.com/questions/5734376/clearing-validation-error-messages-from-a-zend-form-element) – Gordon 2012-03-08 16:10:45

+0

可能的的[我如何自定義Zend_Form的正則表達式的錯誤消息]重複(http://stackoverflow.com/questions/2553943/how-can-i-customise-zend-form-regex-error-messages/2554049#2554049) – Gordon 2012-03-08 16:12:07

回答

1

嘗試,因爲驗證調用的一部分,就像這樣:

$username= new Zend_Form_Element_Text('username'); 
$username->setLabel('User name:') 
->setRequired(TRUE) 
->addValidator('NotEmpty',TRUE) 
->addValidator('Alnum',TRUE) 
->addValidator(new Zend_Validate_Db_NoRecordExists(array(
        'table'=>'users', 
        'field'=>'username', 
        'messages' => array(
         Zend_Validate_Db_NoRecordExists::ERROR_RECORD_FOUND=>'Username already used') 
       ))); 

這樣的消息只與此相關的驗證。

+0

我只是使用了相同的代碼,但沒有顯示「用戶名已被使用」。如何把這個消息帶到哪個記錄已經存在 – Bharanikumar 2013-03-18 13:05:51