如何调试Zend\Form?

How to debug a Zend\Form?

在一个项目中,我有一个巨大的表单 -- 有很多字段、嵌套字段集、集合等。表单验证失败,我不知道为什么。

遇到这样的问题应该怎么处理? 找出表单验证失败原因的有效方法是什么?

我终于找到了一种无需调试每个(子-子-子)字段集和每个(子-子-子)元素即可检测验证错误的方法。在视图脚本中很简单$form->getMessages(). Or alternatively $this->FormElementErrors($form)

我以前知道这个方法吗?当然,我做到了。但我不关心方式,它是如何工作的,属性 messages 让我误入歧途:

当我遇到验证问题时,我在 Zend\Form#isValid() 调用之后的某处设置了一个断点,然后在 Xdebug 中看到 Zend\Form#messages 属性 是空的。我对此感到惊讶,因为 属性 "messages" 表明它将包含(验证错误)消息。此逻辑适用于 in Elements —— Form 实际上 Element(因为 Form extends Fieldset extends Element).