3

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

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

我如何在 ZF2 中做到这一点?我试过了

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

但它不会使表格无效。

4

1 回答 1

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 类实例化您的真实表单:

    class SomeYourForm extends BasicForm
    ...
    

因此,您将能够通过覆盖此属性将此表单的有效状态设置为 true 或 false。

可能对某人也有帮助。

于 2017-07-24T20:15:57.630 回答