forms - 如何在 Controller 中禁用 Zend Framework 2 中的字段过滤器?

标签 forms validation zend-framework zend-framework2

我从服务管理器获得的添加/编辑用户的表单已经安装了过滤器,这是测试密码。但是编辑用户时不需要这个密码。我可以在 Controller 中以某种方式禁用密码字段验证吗?

在模块的getServiceConfig函数中:

// ....
'UserCRUDFilter' => function($sm)
{
    return new \Users\Form\UserCRUDFilter();
},

'UserCRUDForm' => function($sm, $param, $param1)
{
    $form = new \Users\Form\UserCRUDForm();
    $form->setInputFilter($sm->get('UserCRUDFilter'));
    return $form;
},
// ....

在 Controller 中,我首先从服务管理器获取表单对象:

$form = $this->getServiceLocator()->get('UserCRUDForm');

然后在编辑用户且未指定密码时禁用用户密码验证和要求:

if ($user_id > 0 && $this->request->getPost('password') == '') {
      $form->.... // Someway gained access to the filter class and change the password field validation
}

然后我进行验证:

$form->isValid();

最佳答案

我找到了!

// If user is editted - clear password requirement
if ($user_id > 0) {
    $form->getInputFilter()->get('password')->setRequired(false);
    $form->getInputFilter()->get('confirm_password')->setRequired(false);
}

此行禁用输入表单字段的要求:)

关于forms - 如何在 Controller 中禁用 Zend Framework 2 中的字段过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25061192/

相关文章:

php - 尝试获取ErrorController.php的非对象属性

javascript - 多个变量

forms - 如何使用Delphi在事件显示器的右下角显示消息窗口

javascript - 如何从不规范的字段中获取值

PHP登录页面重定向到自身并且不登录

php - PHP 中的 MD5 哈希验证因未知原因失败

javascript - 如何使用用户输入的有效值一一激活表单字段

c# - 正则表达式匹配IP地址+通配符

zend-framework - 在 Zend Framework 中将 Action 渲染到 HTML 电子邮件

database - 如何从reactjs发出Http请求?