【问题标题】:Adding a field specific error from the controller in symfony2从 symfony2 中的控制器添加字段特定错误
【发布时间】:2012-08-23 14:54:12
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php symfony symfony-forms


    【解决方案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 控制器将继续,但现在应该将表单标记为无效。
    猜你喜欢
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2014-09-27
    相关资源
    最近更新 更多