You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony 6.4中MapRequestPayload无法映射含连字符的字段

解决方案

直接用Symfony Serializer组件的#[SerializedName]注解就能解决这个字段名映射问题,这是框架开箱支持的方案:

  • 首先在你的UpdateEmailStatusInput类里引入SerializedName注解,命名空间为Symfony\Component\Serializer\Annotation\SerializedName
  • 在$eventData属性上添加该注解,指定对应请求体里的字段名event-data

示例代码如下:

// src/Input/UpdateEmailStatusInput.php
namespace App\Input;

use Symfony\Component\Serializer\Annotation\SerializedName;

class UpdateEmailStatusInput
{
    public string $signature;

    #[SerializedName('event-data')]
    public array $eventData; // 可根据实际数据结构调整类型,比如自定义对象类型
}

修改完成后,原有的#[MapRequestPayload]注解就能自动将请求体中的event-data字段值映射到$eventData属性上,无需额外配置,也不用再手动处理$request->getContent()。

如果你的项目是极简安装未包含Serializer组件,执行以下命令安装:

composer require symfony/serializer

内容的提问来源于stack exchange,提问作者GrzeGab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:15:53