我正在使用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.
我不想在失败的字段上显示所有错误消息。
提前致谢。
答案 0 :(得分:6)
我得到了答案: 为了打破ZF2中的验证链,我们必须使用
'break_chain_on_failure'=>真
$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
)
)
)
);
答案 1 :(得分:1)
如果某些验证失败,Zend_Validate允许您破坏验证器链。 addValidator()函数的第二个参数$ blockChain在这种情况下失败应为TRUE。
$validatorChain = new Zend_Validate();
$validatorChain->addValidator(new Zend_Validate_NotEmpty(), TRUE)
->addValidator(new Zend_Validate_StringLength(6, 12));
答案 2 :(得分:0)
您还可以设置' error_message'关键,例如:
<script>