2

我正在使用集合表单类型,其中子项将日期时间类型输入为单个文本。但是当我在验证中提交数据失败并且 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 有错误但日期或时间都没有错误?我的语言环境已设置,我尝试添加日期格式,但没有帮助。

4

2 回答 2

2

日期”和“时间”字段的“错误冒泡”属性设置为true,因此这些字段上的错误会冒泡并附加到日期时间字段。

你是对的,错误消息不是很有帮助(有一个开放的票证),但你可以通过在块中打印捕获由 DataTransformer (Form.php:611) 生成的$exception变量来调试问题。异常包含详细的错误描述,出于安全目的对最终用户隐藏。TransformationFailedException

于 2013-08-21T21:06:14.413 回答
1

事实上,这似乎是由于格式日期无效(例如,当您使用不同的格式时,可能会在您设置另一个时区或语言环境时出现)。因此,您只需为 datetime 字段指定 date_format 选项。

就我而言,这解决了问题:

'date_format' => 'dd/MM/yyyy',
于 2013-08-20T15:45:21.397 回答