我正在使用集合表单类型,其中children将日期时间类型输入为单个文本。但是当我在验证中提交数据失败并且getErrorsAsString显示这个奇怪的错误时:
inputDateTime:
ERROR: This value is not valid.
date:
No errors
time:
No errors
以下是我添加字段的方法
//form child
$builder->add('inputDateTime', 'datetime', array(
'date_widget' => 'single_text',
'time_widget' => 'single_text'
));
为什么inputDateTime有错误,但日期或时间都没有错误?我的区域设置已设置,我尝试添加日期格式,但没有帮助。
答案 0 :(得分:2)
"error_bubbling" property of the "date" and the "time" field设置为true
,因此这些字段上的错误会冒出来并附加到日期时间字段。
您是对的,错误消息不是很有用(有open ticket for that)但您可以通过在DataTransformer生成的block that catches the TransformationFailedException
中打印$exception
变量来调试问题( form.php的:611)。该例外包含详细的错误描述,出于安全目的,该描述对最终用户是隐藏的。
答案 1 :(得分:1)
实际上,它似乎是由于格式日期无效(当您使用不同的格式时,例如,当您设置了另一个时区或区域设置时可能会出现这种格式)。因此,您必须为datetime字段指定date_format选项。
就我而言,这解决了这个问题:
'date_format' => 'dd/MM/yyyy',