forms - Symfony 2.6.3 {{ form_errors( form ) }} 当 isValid() 返回 false 时为空

标签 forms symfony

我正在使用 Symfony V2.6.3

我有一个基于 Type 类的包含三个字段的简单表单。

Type 类通过 setDefaultOptions() 指定的实体类有 use Symfony\Component\Validator\Constraints as Assert;陈述。

每个字段都有一个 @Assert\NotBlank()实体类中的约束。

CSRF 已启用。

HTML5 验证被禁用。

如果我提交所有字段为空的表单,则会发生以下情况:

  • 在 Controller 中:
  • 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/

    相关文章:

    php - Symfony Twig 样式表

    symfony - 通过Symfony 2.1中的postUpdate监听器找出发生了什么变化

    php - Symfony 3 忽略自定义可重用 bundle 的路由

    PHP 表单多个按钮

    javascript - 内联显示表单元素

    php - 表单输入中的默认日期为上个月的第一天和最后一天

    symfony2 CSRF 无效

    python - 如何为django modelform字段设置动态初始值

    javascript - 使用 javascript 进行登录验证

    php - 将变量设置为当前时间和日期 symfony2