php - Symfony 2.6 表单验证和错误消息

标签 php symfony symfony-forms symfony-validator

我对 Symfony 还很陌生。我编写了以下代码来验证并在验证失败时返回错误消息。但我只能得到错误消息,而不能得到验证失败的字段。下面是我的代码:

if ($request->isXmlHttpRequest()) {

        if ($form->isValid()) {
            //do something here
        }

        $errors = $this->get('my_form')->getErrorMessages($form);
        return new JsonResponse(['errors' => $errors], 400);
}

有人可以告诉我如何获取字段名称和错误消息吗?

谢谢

最佳答案

为了获取表单的所有错误,请使用$form->getErrors($deep=true, $flatten=true),因此将错误转换为一个数组,其中名称作为字段名称,键作为消息将类似于:

$errors = $form->getErrors(true, true);
$errorArray = array();
foreach($errors as $e){
  //get the field that caused the error
  $field = $e->getOrigin();
  $errorArray[$field->getName()] = isset($errorArray[$field->getName()]) ? $errorArray[$field->getName()] : array();
  $errorArray[$field->getName()][] = $e->getMessage();
}

关于php - Symfony 2.6 表单验证和错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758633/

相关文章:

php - 使用 OAuth2 客户端凭证流保护用 PHP 编写的 REST API

symfony - 如何在 Symfony2 twig 模板的 "delete"按钮中添加 css 类?

forms - 如何在事件监听器中添加数据转换器

php - Symfony Form Collection - 如何获取实体 id?

php - 将查询字符串附加到任何形式的 URL

php - 如何从字符串中提取标签

php - 如何使用 css 拉伸(stretch)背景图像

php - 预期参数类型为 "string",给出 "AppBundle\Form\MovieType"

PHP - 将查询结果存储在数组中

php - 如何在 Symfony2 Doctrine2 中获取不同的 DBAL 连接