zend-framework - 移除验证器并在 Controller 中将 required 设置为 false

标签 zend-framework zend-form

我有以下代码创建密码字段。

// Element: password
$this->addElement('Password', 'password', array(
   'label' => 'Password',
   'description' => 'Passwords must be at least 6 characters long.',
   'required' => true,
   'allowEmpty' => false,
   validators' => array(
       array('NotEmpty', true),
       array('StringLength', false, array(6, 32)),
       )
  ));
$this->password->getDecorator('Description')->setOptions(array('placement' => 'APPEND'));
$this->password->getValidator('NotEmpty')->setMessage('Please enter a valid password.', 'isEmpty');

在我的 Controller 中,我需要删除验证器并根据某些条件从 Controller 中将“required”设置为 false。

例如:-

if($someCondition){
    //Set required to false and remove validator here somehow
}

有人知道这种情况的解决方案吗?

最佳答案

如果您在 Controller 中像这样实例化了表单:-

$loginForm = new Application_Form_LoginForm();

然后您可以像这样设置密码(或任何其他)元素的属性:-

if($someCondition){
    $loginForm->Password->setRequired(false);
    $loginForm->Password->setValidators(array());
}

或者,当 Zend_Form_Element::setRequired() 返回 Zend_Form_Element 的实例时,您可以这样做:-

if($someCondition){
    $loginForm->Password->setRequired(false)->setValidators(array());
}

关于zend-framework - 移除验证器并在 Controller 中将 required 设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853748/

相关文章:

zend-framework - 如何使用 Zend-framework 应用条件样式表 $this->headLink()->appendStylesheet ('css/css.css' )

jquery - 验证空字段并列出所有错误并通过 jquery 突出显示所有错误字段并在 zend 框架中显示顶部的错误列表

php - 使用 zend framework 1.7.4 上传文件

php - 在移动 Safari 上使用 Zend_Form_Element_File 验证 Zend Forms

forms - zend 表单依赖下拉列表

zend-framework - 由于 Zend 路线,zend 导航无法正常工作

php - 使用 zend 框架创建动态侧边栏的最佳实践

zend-framework - Zend 表单 : Checkbox element displays as hidden field?

php - 将变量传递给 Zend Form

php - 从 MySQL 数据库中设置 Zend Form 中的特殊字符