如何显示 symfony 验证错误?
How to show symfony validation errors?
我尝试可视化来自验证器的错误消息。
当我编写以下示例时:-
{{ form_errors(form.pGWeek) }}
它工作正常,我收到了消息。但是我的表单有200个字段,所以不实用。
所以我想遍历一个包含所有消息的数组,在这样的表单末尾:
{% if form.name.vars.errors|length > 0 %}
<ul class="form-errors name">
{% for error in form.name.vars.errors %}
{{ error }}
{% endfor %}
</ul>
{% endif %}
但是我没有收到一些消息。我也尝试了一些其他版本.. 但没有任何效果。我正在使用 Symfony 2.7。
有人可以给我提示吗?
感谢您的简短反馈。
所以您只想显示表单所有子项的所有错误,而不是在每个输入字段旁边显示它们?
然后你可以遍历你的 form
的所有 children
,检查是否有任何 errors
出现在这个 children
上,如果是,遍历所有 errors
children
。可能是这样的:
{% for children in form.children %}
{% if children.vars.errors is defined %}
{% for error in children.vars.errors %}
{#{{ dump(children) }}#}
{#{{ dump(error) }}#}
{{ dump(children.vars.name ~ ': ' ~ error.message) }}
{% endfor %}
{% endif %}
{% endfor %}
这会导致类似 description: This value should not be blank.
.
的错误
您可以使用依赖项注入器在您的控制器中创建该循环和条件,然后在您的视图中迭代该错误数组并将其放入 div o 中您想要的任何地方,我想有一些东西像这样:
$errors = $this->get('validator')->validate(yourObject);
if (!empty($errors)) {
foreach ($errors as $error)
throw new \Exception($error->getMessage());
}
也就是说,如果你想停止进程并得到一个异常,但你想显示错误,那么你做类似的事情,你只需要删除那个 foreach 并渲染你的树枝模板并给它 $ errors 变量,在你的模板中你只需要做一个 for 循环来获取错误!
我尝试可视化来自验证器的错误消息。 当我编写以下示例时:-
{{ form_errors(form.pGWeek) }}
它工作正常,我收到了消息。但是我的表单有200个字段,所以不实用。
所以我想遍历一个包含所有消息的数组,在这样的表单末尾:
{% if form.name.vars.errors|length > 0 %}
<ul class="form-errors name">
{% for error in form.name.vars.errors %}
{{ error }}
{% endfor %}
</ul>
{% endif %}
但是我没有收到一些消息。我也尝试了一些其他版本.. 但没有任何效果。我正在使用 Symfony 2.7。
有人可以给我提示吗?
感谢您的简短反馈。
所以您只想显示表单所有子项的所有错误,而不是在每个输入字段旁边显示它们?
然后你可以遍历你的 form
的所有 children
,检查是否有任何 errors
出现在这个 children
上,如果是,遍历所有 errors
children
。可能是这样的:
{% for children in form.children %}
{% if children.vars.errors is defined %}
{% for error in children.vars.errors %}
{#{{ dump(children) }}#}
{#{{ dump(error) }}#}
{{ dump(children.vars.name ~ ': ' ~ error.message) }}
{% endfor %}
{% endif %}
{% endfor %}
这会导致类似 description: This value should not be blank.
.
您可以使用依赖项注入器在您的控制器中创建该循环和条件,然后在您的视图中迭代该错误数组并将其放入 div o 中您想要的任何地方,我想有一些东西像这样:
$errors = $this->get('validator')->validate(yourObject);
if (!empty($errors)) {
foreach ($errors as $error)
throw new \Exception($error->getMessage());
}
也就是说,如果你想停止进程并得到一个异常,但你想显示错误,那么你做类似的事情,你只需要删除那个 foreach 并渲染你的树枝模板并给它 $ errors 变量,在你的模板中你只需要做一个 for 循环来获取错误!