从树枝模板中的FormView获取全局表单错误

时间:2011-08-09 12:29:49

标签: forms symfony twig

为了在树枝模板中渲染表单错误,如果是全局表单错误或字段错误,您只需使用form_errors twig宏而没有区别。

但在我的情况下,全局错误不会像字段错误那样呈现,因此我不能在这两种情况下使用form_errors twig宏。我决定将宏用于场误差&我想从Symfony\Component\Form\FormView对象中获取全局表单错误。目标是迭代树枝模板中的全局错误。像我想的那样渲染它们。

实际上,我没有在symfony2文档中找到任何可以帮助我的资源。

3 个答案:

答案 0 :(得分:5)

最后,我自己找到了解决方案。对于想要做同样事情的人来说,解决方法是调用$formView->get("errors"),它会为您提供一系列FormError

答案 1 :(得分:3)

我正在使用symfony 2.5,它以这种方式对我来说非常适合。

myController的

$error = new FormError(ErrorMessages::USER_NOT_AUTHENTICATED);
$form->addError($error);

MyView的

{% for error in form.vars.errors %}
  <div class="alert alert-danger" role="alert">
    {{ error.messageTemplate|trans(error.messageParameters, 'validators')~'' }}
  </div>
{% endfor %}
希望这会节省一些时间。

答案 2 :(得分:2)

在symfony 2.3中删除了所有访问器方法,以支持公共属性以提高性能。

$formView->get("errors");

现在是:

$formView->vars["errors"];

访问UPGRADE-2.1.md并参阅“弃用”部分以获取更多信息。