我想使用
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);
}
你知道有什么办法吗?
有两种解决方案,首先通过 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