微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony API转换日期

如何解决Symfony API转换日期

我正在使用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的消息,但是我遇到了同样的问题。

我已经在一段时间内弄乱了options数组,并且我还尝试了除上述配置之外的其他配置,但这就是我现在所拥有的。我希望没有人列出我尝试过的所有无效方法,而是希望别人能告诉我该怎么做。

解决方法

根据DateType文档:

输入

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

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

由于您正在发送单个字段,因此将widget设置为single_text,因为choice的默认值将期望对象带有day,month,year

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。