Symfony Form中的DatetimeType:验证手动发送POST请求时出错

时间:2017-04-18 22:08:06

标签: forms symfony fosrestbundle

我正在使用Symfony和FOS Rest软件包开发REST API。我的一个实体有一个日期字段。我也在用behat进行测试,我的问题是当我尝试测试此操作的后期操作时,由于Datetime字段的验证,我总是得到400错误。 这是字段定义:

           ->add(
                'scheduledAt', DateTimeType::class, [
                'label' => 'fields.scheduled_at',
                'required' => false,
                'format' => 'Y-m-d h:i'
            ])

这就是behat测试:

When I send a POST request to "/api/cases/1/actions" with body:
      """
      {
          "comments": "Comments 3",
          "action": 1,
          "scheduledAt": "2017-01-01 17:00:00"
      }
      """

这总是以400响应结束

{
"code":400,
"message":"Validation Failed",
"errors":{"children":{"comments":[],"scheduledAt":{"errors":["This value is not valid."],"children":{"date":{"children":{"year":[],"month":[],"day":[]}},"time":{"children":{"hour":[],"minute":[]}}}},"action":[]}}}

2 个答案:

答案 0 :(得分:1)

如果您想传递请求,请将格式更改为'format' => 'Y-m-d h:i:s',或者在没有秒部分的情况下通过POST日期发送。

答案 1 :(得分:0)

我发现问题,它的日期格式应该是这样的:

'format' => 'yyyy-MM-dd HH:mm'