4

我正在创建一个注册页面来创建一个基于 FOSUserBundle 的新用户。

每次提交新用户表单时,我都会在表单顶部显示此消息:此值不应为空。

显然这是一条全局消息,它没有链接到我表单上的特定字段,所以我想它一定与我的 User 类的任何其他属性相关。

Sf2 为我提供了什么机制来找出我的表格出了什么问题?我正在使用 Symfony 2.5.0

(我会发布有关我的配置、用户类和表单的更多详细信息......但我真的很想学习如何自己找到这个问题)

提前感谢,社区!

4

5 回答 5

1

查看开发前端控制器上的调试工具栏,这是一个很好的调试方式

于 2014-06-26T16:54:59.297 回答
0

您应该在 /_profiler 的日志中看到带有更多描述的错误,甚至可能是导致问题根源的 SQL 错误。

于 2014-06-27T10:57:33.363 回答
0

我认为您应该尝试打印您的$request->get('name_of_your_form'),并在将其与表单绑定后,尝试打印$form->getData(). 应该足以清楚导致问题的字段。

还要记下验证组

于 2014-06-26T18:41:04.953 回答
0

$form->getErrorsAsString()尝试使用或方法将表单错误打印为字符串$form->getErrors()

取自源头

/**
 * Returns a string representation of all form errors (including children errors).
 *
 * This method should only be used to help debug a form.
 *
 * @param int     $level The indentation level (used internally)
 *
 * @return string A string representation of all errors
 *
 * @deprecated Deprecated since version 2.5, to be removed in 3.0. Use
 *             {@link getErrors()} instead and cast the result to a string.
 */
public function getErrorsAsString($level = 0)
{
    return self::indent((string) $this->getErrors(true, false), $level);
}
于 2014-06-26T19:58:23.883 回答
0

这是一个难以追踪的棘手错误。我自己无法跟踪这些类型的错误,所以我在 Google 和 SO 上进行了搜索。我找到了解释我的表格问题的答案。这是表单中未包含的字段之一的验证规则。

所以,在你的情况下,这也可能是原因。NotBlank表单中未包含的字段可能存在验证规则(很可能)。只需尝试一一禁用它们以找到导致此错误的字段。

于 2014-06-26T17:01:07.127 回答