【发布时间】:2016-02-11 00:16:59
【问题描述】:
我正在按照 JSON API 规范 (Documentation) 使用 Symfony 3 构建 API。
提交新数据时,请求格式如下:
{
"type": "entity",
"id" : null,
"attributes" : {
"name" : "Test name"
}
}
但问题是请求不符合 symfony 表单所期望的格式,因为有额外的对象 attributes。
所以我希望能够在表单提交之前转换请求,以使表单能够填充基础实体。
我已尝试注册 FormEvents:PRE_SUBMIT 并执行其中的逻辑,但似乎我无法访问请求内容。
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$data = $event->getData();
var_dump($data);
die();
});
$event->getData() 是null。
我还看到有可能注册DataTransformer,但它是按字段注册的,也无法访问请求。
我不想在控制器中手动执行此操作,因为这将发生在我的所有表单(或至少大多数表单)上,因此我寻找一种更通用的方法来转换请求,但此时我可以不知道怎么做。
感谢您的帮助。
【问题讨论】: