我有一个使用验证码创建元素的表单。 它工作正常。
但我也想在管理页面中使用此表单,并且应该没有验证码。 当我尝试提交表单时出现错误
["captcha"] => array(1) {
["isEmpty"] => string(36) "Value is required and can't be empty"
}
如何在没有验证码的情况下重复使用此表单?还有另一种方法没有扩展另一种新形式吗?
答案 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);
默认情况下需要,但在管理员 - 不是。