为了在 twig 模板中呈现表单错误,如果它是全局表单错误或字段错误,您只需使用form_errors
twig 宏就可以了。
但在我的情况下,全局错误不会像字段错误那样呈现,所以我不能在form_errors
这两种情况下使用 twig 宏。我决定将宏用于字段错误并且我想从Symfony\Component\Form\FormView
对象中获取全局表单错误。目标是迭代树枝模板中的全局错误并像我想要的那样渲染它们。
实际上,我在 symfony2 文档中找不到任何可以帮助我的资源。
最后,我自己找到了解决方案。对于想要做同样事情的人,解决方案是打电话$formView->get("errors")
给你一个数组FormError
我正在使用 symfony 2.5,它以这种方式非常适合我。
我的控制器
$error = new FormError(ErrorMessages::USER_NOT_AUTHENTICATED);
$form->addError($error);
我的观点
{% for error in form.vars.errors %}
<div class="alert alert-danger" role="alert">
{{ error.messageTemplate|trans(error.messageParameters, 'validators')~'' }}
</div>
{% endfor %}
希望这会节省一些人的时间。
在 symfony 2.3 中,所有访问器方法都被删除了,以支持公共属性以提高性能。
$formView->get("errors");
就是现在:
$formView->vars["errors"];
访问UPGRADE-2.1.md并参阅“弃用”部分了解更多信息。