friartuck6000/form-errors-bundle

该包已被 废弃 并不再维护。没有建议的替代包。

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

安装: 204

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 6

类型:symfony-bundle

v1.0.1 2016-02-03 17:19 UTC

This package is not auto-updated.

Last update: 2018-03-28 13:44:33 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错误对象,包含两种格式的错误消息(原始和翻译)以及字段值。

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