2017-04-18 70 views
0

我正在用Symfony和FOS Rest軟件包開發REST API。我的一個實體有一個日期字段。我也在用behat進行測試,我的問題是當我嘗試測試此操作的後操作時,由於Datetime字段的驗證,我總是得到400錯誤。 這裏的字段定義:Symfony Form中的DatetimeType:驗證手動發送POST請求的錯誤

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

而這裏的貝哈特測試:

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":[]}}} 
+0

如果您提交數據'scheduledAt'是一個單一的文本,添加該字段,選項'當widget'必須是'single_text'。 http://symfony.com/doc/current/reference/forms/types/datetime.html#widget –

+0

我做到了,但相同的結果@PigBall – petekaner

+0

請與我們分享行動方法機構。 –

回答

1

請更改格式'format' => 'Y-m-d h:i:s'結束了,如果你想通過請求,或通過POST日期發送無秒部分。

+0

我做到了這一點,並添加'小部件=>'single_text'選項,但結果相同。日期格式是好的這種方式是正確的? 'Y-m-d h:我'發送「2017-01-01 17:00」 – petekaner

0

我發現這個問題,它在日期格式,應該是這樣的:

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