friartuck6000 / form-errors-bundle
该包已被 废弃 并不再维护。没有建议的替代包。
一个服务和Twig方法,用于显示所有级别的表单错误。
v1.0.1
2016-02-03 17:19 UTC
Requires (Dev)
- symfony/symfony: ^2.7|^3.0
This package is not auto-updated.
Last update: 2018-03-28 13:44:33 UTC
README
此包包含以下内容
- 一个服务,用于将表单的所有错误导出到数组
- 一个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错误对象,包含两种格式的错误消息(原始和翻译)以及字段值。
任何建议或贡献都热烈欢迎。祝编码愉快!