Symfony 6.3 / 使用 MapRequestPayload 发布请求

问题描述 投票:0回答:1

我想使用

MapRequestPayload
属性从 POST 请求数据创建一个实体。

然后我验证并保存它。

到目前为止效果很好,但是如何处理来自 select 的数据?

{
    "name": "test",
    "firstname": "test",
    "company_id": 486
}

compay_id 是前端中的一个选择。

这在分配时当然会被忽略,这没关系,因为它不应该被创建,但关系应该被保存。

我的方法现在如下,但它不起作用,因为 MapEntity 属性引用了请求查询。

    public function add(
        #[MapRequestPayload] Person $person,
        #[MapEntity(id: 'company_id')] Company $company
    ): JsonResponse
    {
        $person->setCompany($company);
    }

你知道有什么办法吗?

php symfony attributes doctrine
1个回答
0
投票

有两种解决方案,首先通过 JavaScript。

fetch('api/users?company_id=1', {
  name: "test",
  firstName: "test"

})

其次通过 Symfony 的 ValueResolverInterface

https://symfony.com/doc/current/controller/value_resolver.html#adding-a-custom-value-resolver

© www.soinside.com 2019 - 2024. All rights reserved.