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

MrG*_*ass 26 php symfony-forms symfony

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

$error = new formerror("There is an error with the form");
$form->addError($error);
Run Code Online (Sandbox Code Playgroud)

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

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

MrG*_*ass 54

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

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

继承我的代码:

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

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

  • 为了能够正确使用前级错误,我需要将其作为USE包含在内? (4认同)