【发布时间】:2014-03-26 02:04:16
【问题描述】:
使用 Symfony2.3.4 和 Twig
我敢打赌,这对任何人来说都很容易,但我就是做不到。
我试图只显示一个错误警报,始终显示相同的消息,始终在表单的开头,每次出现错误时,无论哪个字段包含无效输入。
我认为我可以这样做:
//../Professor/Resources/new.html.twig
{% extends 'AdminBundle:Default:admin.html.twig' %}
{% block content -%}
<h1>New professor</h1>
{% if form_errors(form) is not null %} {#<------------------------------------#}
<div class="alert alert-error">
<i class="glyphicon-ban-circle"></i> Message.
</div>
{% endif %}
<div class="row-fluid">
<form id="prof_create" class="form-horizontal sf_admin_form_area" action="{{ path('professor_create') }}"
method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<div class="row-fluid">
<div class="span8"></div>
</div>
<div class="form-actions">
<button class="btn btn-primary">
<i class="icon-ok"></i> {{'Create' | trans}}</button>
<a class="btn" href="{{ path('professor') }}">
<i class="icon-ban-circle"></i> {{'Cancel' | trans }}</a>
</div>
</form>
</div>
{% endblock %}
{% if form_errors(form) is not null %} 不工作,意思是:
当我在字段中输入任何数据之前第一次显示创建表单时,尽管字段中没有数据,但仍显示错误警报。
我也试过 {% if form_errors(form) %} 这也是没用的,但反过来,有没有错误都没有关系,警报不会显示。
显然有很多我不知道的关于 form_errors(form) 的内容。
欣赏任何提示,甚至完全不同的解决方案。
谢谢
【问题讨论】:
-
添加了许多答案,其中一些取决于
error_bubbling设置。我在 symfony 食谱中添加了一个 PR 来改进文档。随意在这里投票:github.com/symfony/symfony-docs/issues/6145
标签: forms symfony error-handling twig