我的symfony表单有一些复杂的验证,我需要能够从控制器向特定字段分配错误。现在,我有这样的全局错误:
$error = new formerror("There is an error with the form");
$form->addError($error);
但是这会产生一个全局错误,而不是一个绑定到特定字段的错误。
有没有办法在我的控制器的特定字段上抛出错误?
答案 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;