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

标签 php symfony

在 Symfony2 中,我将如何使用 twig 模板在每个字段旁边和表单顶部显示表单错误?

目前我只能通过在每个字段上将 error_bubbling 设置为 true 或 false 来设法获得一个或另一个...

谢谢

最佳答案

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

我建议你这个基于 this StackOverflow 上的问题。检查this具体答案。

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

// 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 #}

如果没记错的话,有一种方法可以从表单中检索所有错误,并且仍然在每个字段上设置错误。根据我的内存,它是表单 View 上的一个特殊属性,类似于 form.errors。但我不记得或找不到任何关于此的信息。所以,就目前而言,这是我能找到的最佳方法。

关于php - Symfony2 在字段旁边和表单顶部显示表单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179720/

相关文章:

php - 如何使用 mysql 查询仅订购价格与促销价格之间价格比最大的产品

php - Symfony2 无法导入资源

symfony - Doctrine2 Symfony2 扩展不同包中的实体,但具有相同的数据库表名称

javascript - 我正在尝试使用 requirejs 将我自己的 js 文件添加到 orocommerce 但没有成功

javascript - 如何在html中嵌入文本文件?

php - 无法从 WordPress 上的数据库获取值

php - 无法使用 Google PHP API 客户端库更新用户信息

php - 创建一个随机字符串,检查表,如果已存在,则创建新字符串并重试,如果不存在,则插入 - 脚本不起作用?

jquery - symfony2使用ajax模拟多个提交按钮

mysql - 表结构变更时的Doctrine和Mysql数据迁移