在ZF1中,可以使用代码将表单标记为无效:
$form->fieldname->addError('error message');
我怎样才能在ZF2中做到这一点? 我试过了
$form->get('elementName')->setMessages(array('error message'));
但它不会使表单无效。
答案 0 :(得分:1)
我想知道同样的问题,我也不知道如何使用默认的Zend 2表单轻松完成。
我不知道为什么有必要隐藏手动表单状态操作并打破明显的addError功能。
但是您可以使用这样的代理方式:
创建自己的表单基本类(稍后可能会写得更好):
class BasicForm extends Form
{
protected _isValid = null;
public function isValid()
{
return isset($this->_isValid) ? $this->_isValid : parent::isValid();
}
public function setValid($value)
{
$this->_isValid = isset($value) ? (bool)$value : null;
return $this;
}
}
从此默认Zend Form类的自定义表单类intead实例化您的真实表单:
class SomeYourForm extends BasicForm
...
因此,您可以通过覆盖此属性将此表单的有效状态设置为true或false。
也可能对某人有帮助。