我正在将现有的rest api重写为Symfony2。当然我不想将界面更改为客户端。
之前我们发布了数据来创建这样的用户资源:
{
"name":"myName",
"email":"myEmail"
}
在Symfony2.3中,我将请求传递给带有$ form-> handleRequest($ request)的表单。对于要提交的表单,正文的签名必须包含表单类型名称,如下:
{
"user" : {
"name":"myName",
"email":"myEmail"
}
}
是否有一种简单的方法可以保留以前的签名,仍然使用Symfony表单?
答案 0 :(得分:2)
好吧,还有一个人试图在REST中使用表单......
问题是Symfony表单的目的是将来自 HTML表单的数据绑定到模型对象或数组。其他一切 - 例如验证 - 不是通过Symfony表单完成的,而是通过validator
等专用服务完成的。为方便起见,Symfony仅代表这些服务。
因此,由于您正在使用REST而不使用HTML表单,停止使用错误的工具。相反,请使用this one之类的序列化程序({3}}与Symfony集成。您可以执行验证和其他内容,而无需直接使用相应的服务来使用Symfony表单。
答案 1 :(得分:0)
您可以使用空名称创建命名表单:
$form = $this->formFactory->createNamed(null, 'user', $user);