如何参考无效字段获取Symfony2表单验证错误列表?

时间:2014-06-14 15:14:40

标签: php forms validation symfony

由于与验证组件紧密集成的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()

中返回

1 个答案:

答案 0 :(得分:1)

您可以使用$form->getErrorsAsString()来获取错误的人类可读表示。除非错误无法附加到字段,或者error_bubbling设置为true,否则这些错误将映射到字段。