我正在用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
的对象。