0

我可以使用下面的方法覆蓋zend表單元素的所有錯誤消息。如何覆蓋表單元素的所有錯誤消息?

$name->setRequired(TRUE) 
    ->setAttrib('id', 'fullname') 
    ->addErrorMessage('Please provide your name'); 

但是,當我使用工廠模式創建表單元素時,我無法複製此信息。
'errorMessage'鍵不執行任何操作。

$this->addElement('text', 'city', array(
     'placeholder' => 'City*', 
     'required'  => true, 
     'filters'  => array('StringTrim', 'StripTags'), 
     'errorMessage' => 'TEST', 
     'validators' => array(
      array('StringLength', false, 
       array(3, 50, 
        /*'messages' => array(
         Zend_Validate_StringLength::TOO_SHORT => 'too short' 
        )*/ 
       ) 
      ) 
     ), 
     'decorators' => array('ViewHelper','Errors'), 
    )); 

我可以單獨重寫每個Zend的錯誤消息(見註釋代碼),但是這是一個非常繁瑣的過程。

當使用工廠模式創建ZF表單元素時,是否有方法覆蓋所有錯誤消息?

回答

0

沒有辦法覆蓋所有的錯誤信息

0

我還沒有嘗試過,但我認爲你可以這樣做:

'errorMessages' => array('TEST'), 

注意errorMessages是複數,你傳遞一個元素的數組,而不是一個的字符串中。

0

如果要更改錯誤信息,那麼您可以定義在驗證的時候這樣定義..

'validators' => array(
        'NotEmpty', 
        true, 
        array('messages' => array('isEmpty' => "Please provide your name.")) 

當此字段爲空,然後錯誤信息將是「請提供您的姓名」。

相關問題