微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Symfony2在字段旁边和表单顶部显示表单错误

在Symfony2中,如何使用twig模板在表单顶部和表单顶部显示表单错误

目前我只是设法得到一个或另一个,通过在每个字段上将error_bubbling设置为true或false …

谢谢

解决方法:

我可以提出的解决方案是对对象进行第二次显式验证并向模板发送错误.这样,第一个隐式验证在表单对象中完成,错误绑定到字段(不使用错误冒泡).第二个验证将为您提供错误的迭代器,您可以将该迭代器传递给模板,以显示在表单的顶部.然后,您将把错误放在每个字段旁边,也放在表单的顶部.

我建议你基于StackOverflow上的this问题.检查this特定答案.

这里是控制器代码的草图(我没有测试任何东西):

// Code in a controller
public acmeFormAction(...) {
    // Form and object code

    // Get a ConstraintViolationList
    $errors = $this->get('validator')->validate( $user );

    return $this->render('AcMetaskBundle:Default:new.html.twig', array(
        'form' => $form->createView(),
        'errors' => errors,
    ));
}

和模板中的代码

{# Code in a twig template #}
<ul id="error-list">
    {% for error in errors %}
        <li> error.message </li>
    {% endfor %}
</ul>

{# display your form as usual #}

如果记住正确,有一种方法可以从表单中检索所有错误,并且仍然在每个字段上设置错误.从我的记忆中,它是表单视图中的一个特殊属性,如form.errors.但我不记得或发现任何有关此事的信息.所以,就目前而言,这是我能找到的最佳方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐