ex3v/formerrorsbundle

一个服务和Twig方法,用于在所有级别上显示所有表单错误。

安装: 8,729

依赖者: 0

建议者: 0

安全性: 0

星标: 11

关注者: 4

分支: 6

开放问题: 3

类型:symfony-bundle

v0.0.1 2014-09-17 09:32 UTC

This package is auto-updated.

Last update: 2024-09-16 03:06:07 UTC


README

knpbundles.com

Latest Stable Version Total Downloads License

此包包含两个东西

  • 一个服务,将所有错误从表单导出到数组
  • 一个Twig扩展,帮助将其作为列表显示

已经存在一个表单方法getErrorsAsString(),但它不提供标签。它还需要你在控制器中编写样板代码,或者编写自己的服务。如果你自己尝试列出所有错误,你会注意到$form->getErrors()只返回Form本身的错误,而不是特定字段或子表单的错误。为什么要费心创建自己的解析器?使用我的吧 :)

免责声明

我基于Symfony 2.3.13编写了这个包,用于我的个人目的,没有在其他版本上测试,但考虑到Fabien关于向后兼容性的说法,它至少应该在2.4版以及任何未来版本的Symfony2上工作,以及旧版本上。请记住,我不保证这一点,所以请随意测试、分支和修改。

安装

  • 将此添加到您的composer.json文件中的require部分

      "ex3v/formerrorsbundle": "dev-master"
    
  • 将此添加到您的AppKernel.php文件中(在/app下)

      new Ex3v\FormErrorsBundle\Ex3vFormErrorsBundle(),
    

然后在您的项目上运行composer update以安装。

用法

在控制器中,除了添加FormView外,还要将Form对象添加到返回的数组中

    return array(
        'form' => $form->createView(), 
        'formFull' => $form
    );

有了这个,你就可以在Twig中调用新方法

    {{ all_form_errors(formFull) }}

此方法将(默认情况下)显示所有表单错误作为

    列表,如下所示

         <ul>
             <li>Title: field cannot be empty.</li>
             <li>Website: this is not a valid URL.</li>
         </ul>
    

    您可以通过添加额外的参数来自定义输出

        {{ all_form_errors(formFull, "div", "myclass") }}
    

    这将产生一个错误列表,其中每个错误都包裹在一个单独的div中,其类为"myclass"

        <div class="myclass">
            Title: field cannot be empty.
        </div>
        <div class="myclass">
            Website: this is not a valid URL.
        </div>
    

    如果您想对错误有更多的控制,也可以在控制器中直接调用解析错误的服务的调用

        $formErrorsParser = $this->get('formErrorsParser');
        $errors = $formErrorsParser->parseErrors($form);
    

    $errors数组将包含由以下内容组成的数组

    • 字段名称
    • 字段标签
    • Symfony\Component\Form\FormError错误对象,它包含两种格式的错误消息(原始和翻译)以及字段值。

    任何建议或贡献都热烈欢迎。祝您编码愉快!