2009-05-05 7 views
4

У меня есть форма на сайте Zend, где есть обязательная «Условия».Пользовательское сообщение об ошибке Zend для флажков

Я установил пользовательское сообщение, в котором говорится: «Вы должны согласиться с условиями».

однако, поскольку флажок "присутствие = 'требуется'", она возвращает

Field 'terms' is required by rule 'terms', but the field is missing 

что эта константа, определенная в рамках Zend:

self::MISSING_MESSAGE  => "Field '%field%' is required by rule '%rule%', but the field is missing", 

Я мог бы изменить эту константу, но это изменит отчет об ошибках для всех необходимых флажков.

Как я могу повлиять на отчет об ошибках для данного конкретного случая?

ответ

3

Вы можете изменить сообщение по умолчанию, как это:

$options = array(
       'missingMessage' => "Field '%field%' is required by rule '%rule%', dawg!" 
      ); 

А потом:

$input = new Zend_Filter_Input($filters, $validators, $myData); 

Или

$input = new Zend_Filter_Input($filters, $validators, $myData); 
$input->setOptions($options); 

... и, наконец:

if ($input->hasInvalid() || $input->hasMissing()) { 
    $messages = $input->getMessages(); 
} 

Это указано на странице Zend_Filter_Inputmanual.

12

Если вы используете Zend_Form_Element_Checkbox, вы можете customize the error messages on the Zend_Validate validators.

$form->addElement('checkbox', 'terms', array(
    'label'=>'Terms and Services', 
    'uncheckedValue'=> '', 
    'checkedValue' => 'I Agree', 
    'validators' => array(
    // array($validator, $breakOnChainFailure, $options) 
    array('notEmpty', true, array(
     'messages' => array(
     'isEmpty'=>'You must agree to the terms' 
    ) 
    )) 
    ), 
    'required'=>true, 
); 

Вы хотите, чтобы убедиться, что неконтролируемое значение «пустой» и что поле «требуется»

Смежные вопросы