📜  symfony 表单获取错误 - PHP (1)

📅  最后修改于: 2023-12-03 15:05:26.942000             🧑  作者: Mango

Symfony 表单获取错误 - PHP

在使用 Symfony 框架的表单时,经常遇到需要获取表单验证错误的情况。这篇文章将会介绍如何获取表单错误的方法。

获取错误

在 Symfony 中,表单验证错误的信息存储在表单对象的 errors 属性中。在控制器中可以通过 $form->getErrors() 或者 $form->getErrors(true) 来获取表单的全部错误信息,其中,$form->getErrors(true) 方法可以递归地查找嵌套表单的错误信息。

获取全部错误
if ($form->isSubmitted() && !$form->isValid()) {
    $errors = $form->getErrors(true);
}

在上面的代码中,首先判断表单是否已经提交并且不合法,如果满足条件,则通过 $form->getErrors(true) 方法获取表单的全部错误信息,存储在 $errors 变量中。

获取特定字段错误

如果想要针对某个表单字段获取错误信息,可以使用 $form->get($fieldName)->getErrors(true) 方法。其中,$fieldName 为表单字段的名称。

if ($form->isSubmitted() && !$form->isValid()) {
    $errors = $form->get('username')->getErrors(true);
}

上面的代码中,$form->get('username') 获取表单中名称为 username 的字段对象,然后使用 $form->get('username')->getErrors(true) 方法获取该字段的全部错误信息。

在模板中获取表单错误

在模板中,可以通过 form_errors() 函数获取表单的错误信息。如果想要针对某个字段获取错误信息,可以使用 form_errors(form.fieldName) 函数。

{{ form_start(form) }}
    {{ form_widget(form) }}
    {{ form_errors(form) }}
{{ form_end(form) }}

在上面的 Twig 模板中,{{ form_errors(form) }} 会输出表单的全部错误信息。

{{ form_errors(form.username) }}

这行 Twig 代码会输出表单名称为 username 的字段的错误信息。

总结

本文介绍了在 Symfony 中如何获取表单验证错误的方法。在控制器中可以通过 $form->getErrors() 或者 $form->getErrors(true) 来获取全部错误信息,也可以通过 $form->get($fieldName)->getErrors(true) 来获取特定字段的错误信息。在模板中,可以使用 form_errors() 函数获取表单的错误信息。