Я использую проверку формы ZF2. Я должен проверить два поля USERNAME и PASSWORD. все работает нормально, но я получаю сообщение, как
Please enter username. Username can not be less than 3 characters. Please enter password. Password can not be less than 6 characters.
Если пользователь не вводит какое-либо значение, тогда должно отображаться только это сообщение
Please enter username. Please enter password.
Я не хочу показывать все сообщения об ошибках в поле при ошибке.
Заранее спасибо.
Я получил ответ: чтобы сломать цепочку валидации в ZF2, мы должны использовать
'break_chain_on_failure' => true
$this->add( array( 'name' => 'usernmae', 'required' => true, 'filters' => array( array('name' => 'Zend\Filter\StringTrim') ), 'validators' => array( array('name' => 'NotEmpty', 'options' => array('encoding' => 'UTF-8', 'messages' => array( NotEmpty::IS_EMPTY => 'Please enter username')), 'break_chain_on_failure' => true), array( 'name' => 'Zend\Validator\StringLength', 'options' => array( 'encoding' => 'UTF-8', 'min' => 3, 'max' => 30, 'messages' => array( StringLength::TOO_LONG => 'Username can not be more than 30 characters long', StringLength::TOO_SHORT => 'Username can not be less than 3 characters.') ), 'break_chain_on_failure' => true ) ) ) );
Мой блог: http://programming-tips.in
Zend_Validate позволяет вам разрывать цепочку валидаторов, если сбой определенных валидаций. Второй параметр функции addValidator () $ breakChainOnFailure должен быть TRUE в этом случае.
$validatorChain = new Zend_Validate(); $validatorChain->addValidator(new Zend_Validate_NotEmpty(), TRUE) ->addValidator(new Zend_Validate_StringLength(6, 12));
Вы также можете установить ключ «error_message», например:
'email' => [ 'required' => true, 'error_message' => 'Incorrect email address ', 'filters' => [ [ 'name' => 'StripTags', ], [ 'name' => 'StringToLower', ] ], 'validators' => [ [ 'name' => 'EmailAddress', 'break_chain_on_failure' => true ] ] ],