PHP Zend (ZF1) 无法更改 Zend_Filter_Input 中的 StringLength 消息

PHP Zend (ZF1) cant change StringLength messages in Zend_Filter_Input

我在 Zend_Filter_Input 中更改 StringLength 的消息时遇到问题。代码:

    $filters = array(
        'nazwa'   => 'StringTrim',
        'haslo'   => 'StringTrim'
    );           

    $validators = array(
        'nazwa'   => array(
            'allowEmpty' => false,                  
            'presence' => 'required',                       
            new Zend_Validate_StringLength(array('min' => 5, 'max' => 30)),
            array('Regex', array('pattern' => '/^[\w]+$/'))
        ),
        'haslo'   => array(
            'allowEmpty' => false,              
            'presence' => 'required',
            new Zend_Validate_StringLength(array('min' => 5, 'max' => 30))
        )
    );              

    $data = array(
        'nazwa'   => $formData['nazwa'],
        'haslo'   => $formData['haslo']
        );              

     $options = array(
            'notEmptyMessage' => "Pole '%field%' jest wymagane"
         );

    $input = new Zend_Filter_Input($filters, $validators, $data, $options);

我想我只是尝试了从翻译、添加选项到 $validators 中的消息的所有方法,它仍然是默认消息。请告诉我如何更改这些默认错误消息(如 TOO_SHORT、TOO_LONG)以获取新消息。

尝试为验证器失败设置消息。

$validator = new Zend_Validate_StringLength();
$validator->setMessage(
  'Your cusom message about short string',
  Zend_Validate_StringLength::TOO_SHORT
);

然后将 $validator 添加到您的 $validators

更多信息here