在 ZF1 中,可以使用以下代码将表单标记为无效:
$form->fieldname->addError('error message');
我如何在 ZF2 中做到这一点? 我试过了
$form->get('elementName')->setMessages(array('error message'));
但这不会使表单无效。
最佳答案
我想知道同样的问题,但我也不知道如何使用默认的 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 表单类实例化您的真实表单:
class SomeYourForm extends BasicForm ...
因此您可以通过覆盖此属性将此表单有效状态设置为 true 或 false。
可能对某些人也有帮助。
关于php - Zend 框架 2 : How to mark form invalid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216803/