即使用户名输入为空,此行也始终返回
if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
我的表单用户名输入如下所示
<?php
$this->addElement(new Zend_Form_Element_Text('username'));
$this->addElement('text','username',
array('class' => 'input-large',
'value' => $this->user_login,
'attribs' => array('disabled' => 'disabled') /// it can be activated by button in view
));
$username = new Zend_Form_Element_Text('username');
$username->addValidator ( new Zend_Validate_NotEmpty() );
?>
但是像这样的东西
$validator = new Zend_Validate_NotEmpty();
$data = $_POST['username'];
if($validator->isValid($data)) {
echo 'sweet';
}else {
echo 'bad';
}
答案 0 :(得分:0)
将元素设置为必需而不是添加验证器:
$this->addElement('text','username', array(
'class' => 'input-large',
'value' => $this->user_login,
'attribs' => array('disabled' => 'disabled'),
'required' => true
));
原因是表单元素具有默认启用的“allow empty”标志,并且启用此标志后,将不使用您的验证器。我解释了为什么在这个问题中就是这种情况:Zend Framework notEmpty validator setRequired。设置所需的标志会自动添加NotEmpty
验证器并更改标志。