【问题标题】:Failed to denormalize attribute "date" value for class未能对类的属性“日期”值进行非规范化
【发布时间】:2021-03-13 18:03:48
【问题描述】:

我正在尝试通过 API 保存 React JS 中 Front 给出的对象

所以我在 Insomnia 中测试了这个对象:

{
"rate": 1.59,
"correction":"2 ui nOVORAPID",
"date": "2020-11-26",
"time": "7:30"}

我不明白为什么我有错误

未能对类“App\Entity\Bloodsugar”的属性“日期”值进行非规范化:预期参数类型为“字符串”,在属性路径“日期”处给出“对象”。

我的控制器:

        $user = $this->getUser();

        $jsonReceived = $request->getContent();

        $json = json_decode($jsonReceived);

        $newBloodsugar = $serializer->deserialize($jsonReceived, BloodSugar::class, 'json');

...

我猜 Symfony 无法识别日期格式“Y-m-d”,我该怎么办?

【问题讨论】:

    标签: api symfony serialization deserialization json-deserialization


    【解决方案1】:

    我猜你的 BloodSugar 类的设置器或属性类型无效。通常symfony-serializer 将日期规范化为日期时间,而您的实体需要字符串。尝试将其更改为 DatetimeInterface,像这样:

    class BloodSugar {
        //..
        private ?DatetimeInterface $date;
        //..
        public function setDate(DatetimeInterface $date){
            $this->date = $date;
            return $this;
        }
        //..
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 2012-10-08
      相关资源
      最近更新 更多