symfony形式:日期无效

时间:2017-03-08 14:52:33

标签: php mysql symfony

我将symfony与fosrestBundle一起使用。

我尝试更新实体。

我有一个带有字段“myDate”的mysql数据库女巫是一个日期(不是日期时间)

当我得到我的实体时,我在json响应中有这个:

myDate:"2010-12-20T00:00:00+01:00"

当我更新我的实体时,我发送相同的数据。

在我朋友的电脑上,它有效,但在我的电脑上,我有这个错误:

{
  "code": 400,
  "message": "Validation Failed",
  "errors": {
    "children": {
      ...,
      "myDate": {
        "errors": [
          "Cette valeur n'est pas valide."
        ]
      }
    }
  }
}

在FormType构建器中,我有:

->add('myDate', 'date', [
    'widget' => 'single_text'
])

如果我用DateTimeType :: class取代'date',我知道它会起作用,但我想知道的是为什么这对我的朋友而不是为我而烦恼?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

控制器需要表单中的日期对象;如果你不使用变换器(更多关于Symfony Transformers [here] [1])将表单数据从字符串转换为Date对象,则会抛出错误。

你有两个观点:

1)在Controller处理数据类型之前,使用Transformer更改数据类型

或:

2)将FormBuilder“DateType”更改为“TextType”&删除所有日期选项(小部件')。

祝你好运