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

发布于 2024-11-28 19:10:50 字数 315 浏览 0 评论 0原文

要在 twig 模板中呈现表单错误,您只需使用 form_errors twig 宏,无论是全局表单错误还是字段错误,都没有区别。

但就我而言,全局错误不会像字段错误一样呈现,因此我无法在这两种情况下使用 form_errors twig 宏。我决定使用宏来处理字段错误 &我想从 Symfony\Component\Form\FormView 对象获取全局表单错误。目标是迭代树枝模板和分支中的全局错误。像我想要的那样渲染它们。

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

For rendering form errors in a twig template, you just have to use the form_errors twig macro without difference if it is a global form error or a field error.

But in my case, a global error is not rendered like a field error, so I can't use the form_errors twig macro for the two cases. I decide to use the macro for the field error & I would like to get the global form errors from the Symfony\Component\Form\FormView object. The goal is to iterate the global errors in the twig template & render them like I want.

Actually, I don't find any ressources on the symfony2 documentation which can help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

送你一个梦 2024-12-05 19:10:50

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

Finally, I found the solution by myself. For the people who want to do the same thing, the solution is to call $formView->get("errors") which gives you an array of FormError

白况 2024-12-05 19:10:50

我正在使用 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 %}

希望这能节省人们的时间。

I'm using symfony 2.5 and it worked perfect for me in this way.

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 %}

hope this will save someones time.

一瞬间的火花 2024-12-05 19:10:50

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

$formView->get("errors");

现在是:

$formView->vars["errors"];

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

in symfony 2.3 all accessor methods have been removed in favor of public properties to increase performance.

$formView->get("errors");

is now:

$formView->vars["errors"];

Visit UPGRADE-2.1.md and refer to section "Deprecations" for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文