【发布时间】:2016-12-05 14:34:37
【问题描述】:
我必须解决一个 Symfony 表单验证的问题,它由 30 个子表单组成,每个子表单由 3 个实体组成,每个实体大约有 20-25 个字段。所以这个单一的表单包含超过 1800 个字段:-(.
在验证时,编写这个丑陋表单的开发人员在一行中检查它,如下所示:
if ($form->isValid()) {
[...]
}
如果表格无效,在树枝模板中,他只写:
{{ form_errors(form) }}
因此,如果我使用当前值加载表单,并在不进行任何修改的情况下提交它,验证失败并重复两次相同的 Symfony 默认消息:
此值不应为空。
此值不应为空。
但我不知道 1800 多个字段中的哪一个会导致错误,而且我没有找到如何向 Symfony 询问给定错误,这是导致错误的字段。
我如何知道是哪个字段导致了错误?
编辑:我听从了 Alexander 的建议,并且:
$errors = $form->getErrors() ;
foreach($errors as $key => $error) {
var_dump($error);
}
只给我两次:
class Symfony\Component\Form\FormError#1750 (3) {
protected $messageTemplate => string(31) "This value should not be blank."
protected $messageParameters => array(0) {}
protected $messagePluralization => NULL
}
不知道发生在哪里。
【问题讨论】:
-
对不起。我已经编辑了我的答案。您需要像在 getErrors() 中那样处理表单本身。
标签: php forms symfony validation symfony-forms