我将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',我知道它会起作用,但我想知道的是为什么这对我的朋友而不是为我而烦恼?
感谢您的帮助
答案 0 :(得分:1)
控制器需要表单中的日期对象;如果你不使用变换器(更多关于Symfony Transformers [here] [1])将表单数据从字符串转换为Date对象,则会抛出错误。
你有两个观点:
1)在Controller处理数据类型之前,使用Transformer更改数据类型
或:
2)将FormBuilder“DateType”更改为“TextType”&删除所有日期选项(小部件')。
祝你好运