【问题标题】:Form datetime type validation error表单日期时间类型验证错误
【发布时间】:2023-03-09 15:50:01
【问题描述】:

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

【问题讨论】:

    标签: symfony-2.1 symfony-forms


    【解决方案1】:

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

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

    'date_format' => 'dd/MM/yyyy',
    

    【讨论】:

      【解决方案2】:

      "error_bubbling" property of the "date" and the "time" field 设置为 true,因此这些字段上的错误会冒出并附加到日期时间字段。

      您是对的,错误消息不是很有帮助(有一个open ticket for that),但您可以通过在 DataTransformer (Form.php:611) 生成的block that catches the TransformationFailedException 中打印$exception 变量来调试问题.异常包含详细的错误描述,出于安全目的,对最终用户隐藏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-18
        • 1970-01-01
        • 2013-02-12
        • 2014-01-04
        • 2013-02-02
        • 1970-01-01
        • 2022-01-20
        相关资源
        最近更新 更多