symfony2:表单数据签名

时间:2013-09-17 08:10:57

标签: php forms symfony symfony-forms

我正在将现有的rest api重写为Symfony2。当然我不想将界面更改为客户端。

之前我们发布了数据来创建这样的用户资源:

{
    "name":"myName",
    "email":"myEmail"
}

在Symfony2.3中,我将请求传递给带有$ form-> handleRequest($ request)的表单。对于要提交的表单,正文的签名必须包含表单类型名称,如下:

{
    "user" : {
        "name":"myName",
        "email":"myEmail"
    }
}

是否有一种简单的方法可以保留以前的签名,仍然使用Symfony表单?

2 个答案:

答案 0 :(得分:2)

好吧,还有一个人试图在REST中使用表单......

问题是Symfony表单的目的是将来自 HTML表单的数据绑定到模型对象或数组。其他一切 - 例如验证 - 不是通过Symfony表单完成的,而是通过validator等专用服务完成的。为方便起见,Symfony仅代表这些服务。

因此,由于您正在使用REST而不使用HTML表单,停止使用错误的工具。相反,请使用this one之类的序列化程序({3}}与Symfony集成。您可以执行验证和其他内容,而无需直接使用相应的服务来使用Symfony表单。

答案 1 :(得分:0)

您可以使用空名称创建命名表单:

$form = $this->formFactory->createNamed(null, 'user', $user);