本文概述
- Twig
- 控制器(PHP)
在这种情况下, 我们将展示如何在Symfony 3中获取和显示表单错误。
Twig 列出表格中的所有错误
要在树枝视图中列出表单的所有错误, 你需要首先检查表单是否有错误检查form.vars.valid属性。然后, 遍历每个表单子级并在其上打印所有错误。
{#
If the form is not valid then :
Note: in this case the form variable is : form
#}
{% if not form.vars.valid %}
<
ul>
{# Loop through every form item #}
{% for child in form.children %}
{# Display the errors of the form item #}
{%for error in child.vars.errors%}
<
li>
{{error.message}}<
/li>
{%endfor%}
{%endfor%}
<
/ul>
{%endif%}
单项错误
如果仍要在表单项旁边显示错误, 则需要使用form_errors标记, 该标记将显示与该表单项相关的错误。
{{ form_start(form) }}<
div>
{{ form_widget(form.subject) }}
{{ form_errors(form.subject) }}
<
/div>
<
div>
{{ form_widget(form.name) }}
{{ form_errors(form.name) }}
<
/div>
<
div>
{{ form_widget(form.email) }}
{{ form_errors(form.email) }}
<
/div>
<
div>
{{ form_widget(form.message) }}
{{ form_errors(form.message) }}
<
/div>
<
input type="submit" value="http://www.srcmini.com/Submit">
{{ form_end(form) }}
在这种情况下, 当提交表单并且根据FormType中的约束, 该表单无效时, 你将看到该表单的每个输入的错误消息。
文章图片
控制器(PHP) 要使用PHP获取表单的所有错误, 可以使用getErrors方法, 该方法可以在表单或表单项中直接调用。
<
?php$form = ...;
// ...// a FormErrorIterator instance, but only errors attached to this
// form level (e.g. "global errors)
$errors = $form->
getErrors();
// a FormErrorIterator instance, but only errors attached to the
// "subject" field
$errors = $form['subject']->
getErrors();
// a FormErrorIterator instance in a flattened structure
// use getOrigin() to determine the form causing the error
$errors = $form->
getErrors(true);
// a FormErrorIterator instance representing the form tree structure
$errors = $form->
getErrors(true, false);
如果你更喜欢PHP而不是Twig, 或者想要将所有信息包装在控制器中然后在视图中呈现, 则可以选择此选项。
【如何在Symfony 3中使用Twig(或在控制器中)在表单上显示所有(或单个)错误】玩得开心 !
推荐阅读
- 如何在Symfony 3中使用phpseclib连接到SFTP服务器
- 如何为特定活动禁用Android Soft Keyboard()
- 没有标签视图使用android(labelFor =“@ + id / @ + id /”属性指向此文本字段)
- 如何连续删除键盘退格键上的字符长按android
- android如何将EditText光标设置为其文本的末尾[复制]
- SetEditable在最新的Android版本中不起作用
- Android EditText Capital Characters
- Android(TextInputLayout不同inputTypes的不同间距)
- 如何在android中显示密码开/关模式的切换按钮