Symfony 2.6.3 {{ form_errors( form ) }} 当 isValid() returns false 时为空白
Symfony 2.6.3 {{ form_errors( form ) }} is blank when isValid() returns false
我正在使用 Symfony V2.6.3
我有一个简单的表单,其中包含基于类型 class 的三个字段。
类型 class 通过 setDefaultOptions()
指定的实体 class 具有 use Symfony\Component\Validator\Constraints as Assert;
语句。
每个字段在实体 class 中都有一个 @Assert\NotBlank()
约束。
CSRF 已启用。
HTML5 验证已禁用。
如果我提交所有字段为空的表单,会发生以下情况:
- 在控制器中:
isValid()
returns 错误
getErrors( true )
returns 每个字段一个错误
- 在模板中:
{{ form_errors( form ) }}
不为表单或任何字段生成文本。
我创建了一个自定义表单主题并将 {% block form_errors %}
修改为
转储 errors
变量。转储显示 errors
属性 是一个具有两个属性的 FormErrorIterator
对象:form
,我相信字段定义,以及 errors
这是一个空数组。
奇怪的是,向下钻取 form
属性 会显示一个 errors
属性,它是一个包含单个 FormError
对象的数组错误信息。
这不是我第一次使用表格。过去它对我来说效果很好。这可能是 2.6 中的新错误吗?
我搜索过这个,我发现的都是 getErrors()
也没有返回任何内容的情况。
提前致谢,
戴夫
表单错误绑定到 FormType,而不是完整的表单。 RootType 将只包含从子类型冒出的错误。子类型将仅包含其类型的错误以及从子类型等冒出的错误。
做{{ form_errors(form) }}
只会呈现根表单的错误。假设 form.name
字段出现错误,您可以通过执行以下操作得到此错误:{{ form_errors(form.name) }}
.
好的。我终于找到了这个问题的答案。
非常感谢 Symfony 论坛上的 thenetimp。他遇到了同样的问题并解决了 (http://forum.symfony-project.org/viewtopic.php?f=23&t=42841&p=135003&hilit=form_errors#p135003)。
事实证明,您必须在 调用 isValid() 之后调用 createView() 。当您考虑时,这实际上是有道理的。
我正在使用 Symfony V2.6.3
我有一个简单的表单,其中包含基于类型 class 的三个字段。
类型 class 通过 setDefaultOptions()
指定的实体 class 具有 use Symfony\Component\Validator\Constraints as Assert;
语句。
每个字段在实体 class 中都有一个 @Assert\NotBlank()
约束。
CSRF 已启用。
HTML5 验证已禁用。
如果我提交所有字段为空的表单,会发生以下情况:
- 在控制器中:
isValid()
returns 错误getErrors( true )
returns 每个字段一个错误
- 在模板中:
{{ form_errors( form ) }}
不为表单或任何字段生成文本。
我创建了一个自定义表单主题并将 {% block form_errors %}
修改为
转储 errors
变量。转储显示 errors
属性 是一个具有两个属性的 FormErrorIterator
对象:form
,我相信字段定义,以及 errors
这是一个空数组。
奇怪的是,向下钻取 form
属性 会显示一个 errors
属性,它是一个包含单个 FormError
对象的数组错误信息。
这不是我第一次使用表格。过去它对我来说效果很好。这可能是 2.6 中的新错误吗?
我搜索过这个,我发现的都是 getErrors()
也没有返回任何内容的情况。
提前致谢, 戴夫
表单错误绑定到 FormType,而不是完整的表单。 RootType 将只包含从子类型冒出的错误。子类型将仅包含其类型的错误以及从子类型等冒出的错误。
做{{ form_errors(form) }}
只会呈现根表单的错误。假设 form.name
字段出现错误,您可以通过执行以下操作得到此错误:{{ form_errors(form.name) }}
.
好的。我终于找到了这个问题的答案。
非常感谢 Symfony 论坛上的 thenetimp。他遇到了同样的问题并解决了 (http://forum.symfony-project.org/viewtopic.php?f=23&t=42841&p=135003&hilit=form_errors#p135003)。
事实证明,您必须在 调用 isValid() 之后调用 createView() 。当您考虑时,这实际上是有道理的。