29

我的 symfony 表单正在进行一些复杂的验证,我需要能够从我的控制器将错误分配给特定字段。现在,我有这样的全局错误:

$error = new formerror("There is an error with the form");
$form->addError($error);

但这会产生一个全局错误,而不是绑定到特定字段的错误。

有没有办法从我的控制器中对特定字段抛出错误?

4

1 回答 1

58

感谢 IRC 的一些帮助(感谢@fkrauthan!)我想出了一个答案。

SF2 中的每个字段实际上都是表单的一个实例。您需要做的是访问该字段的表单对象,然后在其上添加错误。值得庆幸的是,symfony 提供了一种获取嵌入式表单/字段的方法。

这是我的代码:

$error = new FormError("There is an error with the field");
$form->get('field')->addError($error);

正如一些人所指出的,您需要在文件顶部包含 FormError 类: use Symfony\Component\Form\FormError;

于 2012-08-29T04:10:54.287 回答