我正在使用 Symfony V2.6.3
我有一个基于 Type 类的包含三个字段的简单表单。
Type 类通过 setDefaultOptions()
指定的实体类有 use Symfony\Component\Validator\Constraints as Assert;
陈述。
每个字段都有一个 @Assert\NotBlank()
实体类中的约束。
CSRF 已启用。
HTML5 验证被禁用。
如果我提交所有字段为空的表单,则会发生以下情况:
isValid()
返回假 getErrors( true )
为每个字段返回一个错误 {{ form_errors( form ) }}
不为表单或任何字段生成文本。 我创建了一个自定义表单主题并修改了
{% block form_errors %}
到转储
errors
多变的。转储显示 errors
属性是 FormErrorIterator
具有两个属性的对象:form
,也就是说,我相信字段定义,以及 errors
这是一个空数组。奇怪的是,深入到
form
属性显示 errors
属性是具有单个 FormError
的数组包含错误消息的对象。这不是我第一次使用表单。过去它对我来说效果很好。这可能是 2.6 中的新错误吗?
我已经搜索了这个,我发现的所有情况都是
getErrors()
也一无所获。提前致谢,
戴夫
最佳答案
好的。我终于找到了这个问题的答案。
非常感谢 Symfony 论坛上的 thenetimp。他遇到了同样的问题并想通了( http://forum.symfony-project.org/viewtopic.php?f=23&t=42841&p=135003&hilit=form_errors#p135003 )。
事实证明,您必须在调用 isValid() 之后调用 createView()。当你考虑它时,这实际上是有道理的。
关于forms - Symfony 2.6.3 {{ form_errors( form ) }} 当 isValid() 返回 false 时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141701/