重复使用带有验证码的Zend 2表格进行编辑

时间:2015-02-01 06:44:07

标签: forms zend-framework2 captcha

我有一个使用验证码创建元素的表单。 它工作正常。

但我也想在管理页面中使用此表单,并且应该没有验证码。 当我尝试提交表单时出现错误

["captcha"] => array(1) {
  ["isEmpty"] => string(36) "Value is required and can't be empty"
}

如何在没有验证码的情况下重复使用此表单?还有另一种方法没有扩展另一种新形式吗?

1 个答案:

答案 0 :(得分:0)

解决。

只需创建过滤器

use Zend\InputFilter\Input;
use Zend\InputFilter\InputFilter;

class FreeLessonFilter extends InputFilter
{
public function __construct()
{
    $this->addElements();
}

protected function addElements()
{

    $captcha = new Input('captcha');
    $captcha->setRequired(TRUE);

    $this->add($captcha);

}
}

而不是在管理页面控制器中使用它,而不是在索引页面

中使用它
    $this->defaultForm = new FreeLessonForm();
    $filter            = new FreeLessonFilter();
    $filter->get('captcha')->setRequired(false);

    $this->defaultForm->setInputFilter($filter);

默认情况下需要,但在管理员 - 不是。