Zend Framework 2:如何将表单标记为无效?

时间:2014-10-06 13:02:08

标签: php zend-framework2 zend-form2

在ZF1中,可以使用代码将表单标记为无效:

$form->fieldname->addError('error message');

我怎样才能在ZF2中做到这一点? 我试过了

$form->get('elementName')->setMessages(array('error message'));

但它不会使表单无效。

1 个答案:

答案 0 :(得分:1)

我想知道同样的问题,我也不知道如何使用默认的Zend 2表单轻松完成。

我不知道为什么有必要隐藏手动表单状态操作并打破明显的addError功能。

但是您可以使用这样的代理方式:

  1. 创建自己的表单基本类(稍后可能会写得更好):

    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;
        }
    
    }
    
  2. 从此默认Zend Form类的自定义表单类intead实例化您的真实表单:

    class SomeYourForm extends BasicForm
    ...
    
  3. 因此,您可以通过覆盖此属性将此表单的有效状态设置为true或false。

    也可能对某人有帮助。