Symfony API转换日期



我正在用Symfony 4制作一个API,我试图让它接受一个日期,但它一直抛出Unable to transform data for property path "dateofbirth": Expected a string.错误。

实体中的字段:

/**
* @ORMColumn(type="date", nullable=true)
*/
private $dateofbirth;

表单中的字段:

->add('dateofbirth', DateType::class, [
'html5' => false,
'required' => false,
'input' => 'string',
'input_format' => 'Y-m-d'
])

现在,如果我用"dateofbirth": "1990-02-12"发送JSON,它就会抛出错误。我也尝试过将'input_format'设置为Y-m-dTH:i:sP发送类似"dateofbirth": "1990-02-12T00:00:00+01:00"的内容,但我遇到了同样的问题。

一段时间以来,我一直在摆弄选项数组,我也尝试过除上述配置之外的其他配置,但这就是我现在所拥有的。与其列出我尝试过的所有不起作用的方法,我希望有人能告诉我什么是有效的。

根据DateType文档:

输入

输入数据的格式,即存储日期的格式在您的基础对象上。

由于已将实体声明为@Column(type="date"),因此应将input设置为datetime。Symfony将根据input_format创建对象,并将其映射到模型。

由于您发送的是单个字段,请将widget设置为single_text,因为choice的默认值将期望一个具有day, month, year的对象。

最新更新