php - Zend 框架 2 : How to mark form invalid?

标签 php zend-framework2 zend-form2

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

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

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

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

但这不会使表单无效。

最佳答案

我想知道同样的问题,但我也不知道如何使用默认的 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 表单类实例化您的真实表单:

    class SomeYourForm extends BasicForm
    ...
    

因此您可以通过覆盖此属性将此表单有效状态设置为 true 或 false。

可能对某些人也有帮助。

关于php - Zend 框架 2 : How to mark form invalid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216803/

相关文章:

label - 如何在 Zend Framework 2 中翻译表单标签?

php - jQuery 和 php 注册脚本不起作用

zend-framework2 - 使用omnipay 通过 securepay 进行处理时出现无效指纹异常

php - PDO 和 MySQL 'between'

namespaces - 如何使用基于命名空间的自动加载将库包含到 Zend Framework 2 应用程序中?

来自 root 用户的 PHP,mkdir 权限被拒绝

forms - 如何在 Zend Framework 2 中实现表单预览页面?

zend-framework2 - 选择元素验证

PHP这是header定位的最佳实践

php - 将可标记的人名合并到数据库中