从 symfony2 中的控制器添加字段特定错误
Posted
技术标签:
【中文标题】从 symfony2 中的控制器添加字段特定错误【英文标题】:Adding a field specific error from the controller in symfony2 【发布时间】:2012-08-23 14:54:12 【问题描述】:我的 symfony 表单正在进行一些复杂的验证,我需要能够从我的控制器将错误分配给特定字段。现在,我有这样的全局错误:
$error = new formerror("There is an error with the form");
$form->addError($error);
但这会产生全局错误,而不是绑定到特定字段。
有没有办法从我的控制器中对特定字段抛出错误?
【问题讨论】:
【参考方案1】:感谢 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;
【讨论】:
堆栈溢出不会让您在前 2 天接受自己的答案。 我需要在顶部包含什么作为 USE 才能正确使用 formerror 类? 您实际上不需要使用“使用”语句。你只需要在 new 之后通过完整的限定符。 $error = new \Symfony\Component\Form\FormError("该字段有错误"); 2019 年的 Symfony 4 仍然如此 @Chris 控制器将继续,但现在应该将表单标记为无效。以上是关于从 symfony2 中的控制器添加字段特定错误的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2 - 添加控制器安全性以限制用户对特定博客的访问