我正在创建一个注册页面,以根据FOSUserBundle创建一个新用户。
每次提交新用户表单时,我都会在表单顶部显示此消息: 该值不应为空白。
显然这是一个全局消息,它没有链接到我的表单上的特定字段,所以我想它必须与我的User类的任何其他属性相关。
Sf2提供了什么机制来弄清楚我的表单上有什么问题? 我正在使用Symfony 2.5.0
(我会发布有关我的配置,用户类和表单的更多详细信息......但我真的想学习如何自己找到这个问题)
先谢谢社区!
答案 0 :(得分:1)
查看dev前端控制器上的调试工具栏,它是开始的良好调试方式
答案 1 :(得分:0)
这是一个难以追踪的棘手错误。我自己无法跟踪这些类型的错误,因此我搜索了Google和SO。我找到了用我的表格解释问题的答案。这是一个未包含在表单中的字段之一的验证规则。
所以,在你的情况下,这也可能是原因。对于未包含在表单中的字段,可能存在验证规则(很可能是NotBlank
)。只是尝试逐个禁用它们以找到导致此错误的字段。
答案 2 :(得分:0)
我认为您应该尝试打印$request->get('name_of_your_form')
,并在将其与表单绑定后,尝试打印$form->getData()
。应该足以明确哪个领域导致问题。
另请注意validation groups。
答案 3 :(得分:0)
尝试使用$form->getErrorsAsString()
或$form->getErrors()
方法将表单错误打印为字符串。
取自source
/**
* 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);
}
答案 4 :(得分:0)
你应该在/ _profiler的日志中看到错误和更多描述,甚至可能是SQL错误,这可能导致问题的根源。