在symfony2中从控制器添加字段特定错误

时间:2012-08-29 03:19:27

标签: php symfony symfony-forms

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

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

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

有没有办法在我的控制器的特定字段上抛出错误?

1 个答案:

答案 0 :(得分:50)

感谢对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;