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