由于与验证组件紧密集成的Symfony2 Form组件非常强大,我很难理解如何通过正确引用无效字段来获取PHP端的验证错误列表。通过“引用”,我的意思是一些提示,我可以进一步获取字段和它的ID(与$form->get($failedChild)->vars['id']
或其他内容一样)。
$form->getErrors()
会返回错误列表,但此array of FormErrors不包含对无效字段的任何引用。
I found a Gist显示类似的东西,但至少在2.3或2.4上,所有错误仍然绑定到主窗体。
error_bubbling
选项不会像我最初想的那样改变行为。
更新#1
最后,我想收到所有表单错误的JSON表示并将其返回给客户端。示例JSON类似于
{
"invalid_field_id": "This field has invalid value"
}
可以通过$field->vars['id']
收到字段的ID,但似乎所有验证错误都在$form->getErrors()
而不是$field->getErrors()
答案 0 :(得分:1)
您可以使用$form->getErrorsAsString()
来获取错误的人类可读表示。除非错误无法附加到字段,或者error_bubbling设置为true,否则这些错误将映射到字段。