表单日期时间类型验证错误

时间:2013-02-18 08:46:43

标签: symfony-2.1 symfony-forms

我正在使用集合表单类型,其中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有错误,但日期或时间都没有错误?我的区域设置已设置,我尝试添加日期格式,但没有帮助。

2 个答案:

答案 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',