重复使用带有验证码的 Zend 2 表单进行编辑
Reuse Zend 2 form with captcha for editing
我有一个用于使用验证码创建元素的表单。
它工作正常。
但是我也想在管理页面使用这个表单,应该没有验证码。
当我尝试提交表单时出现错误
["captcha"] => array(1) {
["isEmpty"] => string(36) "Value is required and can't be empty"
}
如何在没有验证码的情况下重复使用此表单?有没有不扩展另一种新形式的方法?
已解决。
只需创建过滤器
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);
默认情况下需要,但在管理员中不需要。
我有一个用于使用验证码创建元素的表单。 它工作正常。
但是我也想在管理页面使用这个表单,应该没有验证码。 当我尝试提交表单时出现错误
["captcha"] => array(1) {
["isEmpty"] => string(36) "Value is required and can't be empty"
}
如何在没有验证码的情况下重复使用此表单?有没有不扩展另一种新形式的方法?
已解决。
只需创建过滤器
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);
默认情况下需要,但在管理员中不需要。