Symfony API 转换日期
Symfony API transforming date
我正在用 Symfony 4 制作一个 API,我试图让它接受一个日期,但它一直抛出 Unable to transform data for property path "dateofbirth": Expected a string.
错误。
实体中的字段:
/**
* @ORM\Column(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,它会抛出该错误。我也试过发送 "dateofbirth": "1990-02-12T00:00:00+01:00"
之类的东西,'input_format'
设置为 Y-m-d\TH:i:sP
,但我遇到了同样的问题。
我一直在摆弄选项数组有一段时间了,我也尝试过上述配置以外的配置,但这就是我现在所拥有的。我希望有人能告诉我什么有效,而不是列出我尝试过的所有无效的方法。
根据 DateType
文档:
input
The format of the input data - i.e. the format that the date is stored
on your underlying object.
由于您已将您的实体声明为 @Column(type="date")
,因此您应该将 input
设置为 datetime
。 Symfony 将根据 input_format
创建对象并将其映射到模型。
并且由于您发送的是单个字段,因此将 widget
设置为 single_text
,因为 choice
的默认值将期望具有 day, month, year
的对象。
我正在用 Symfony 4 制作一个 API,我试图让它接受一个日期,但它一直抛出 Unable to transform data for property path "dateofbirth": Expected a string.
错误。
实体中的字段:
/**
* @ORM\Column(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,它会抛出该错误。我也试过发送 "dateofbirth": "1990-02-12T00:00:00+01:00"
之类的东西,'input_format'
设置为 Y-m-d\TH:i:sP
,但我遇到了同样的问题。
我一直在摆弄选项数组有一段时间了,我也尝试过上述配置以外的配置,但这就是我现在所拥有的。我希望有人能告诉我什么有效,而不是列出我尝试过的所有无效的方法。
根据 DateType
文档:
input
The format of the input data - i.e. the format that the date is stored on your underlying object.
由于您已将您的实体声明为 @Column(type="date")
,因此您应该将 input
设置为 datetime
。 Symfony 将根据 input_format
创建对象并将其映射到模型。
并且由于您发送的是单个字段,因此将 widget
设置为 single_text
,因为 choice
的默认值将期望具有 day, month, year
的对象。