Backbone.js和Symfony2表单验证

时间:2012-10-02 14:10:38

标签: symfony backbone.js

我正在创建一个带有backbone.js和symfony2的单页应用程序,我需要你对一件事的看法。

例如,请参阅此创建用户操作。请求由骨干模型(model.save)发送,我想检查服务器端的值。我的问题非常简单,使用symfony2表单验证进行此检查是否相关?

/**
 *
 * @Route("/user", defaults={"_format"="json"}, name="create_user")
 * @Method({"POST"})
 */
public function createUserAction() {
    $request = $this->get('request');

    if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
        $data = json_decode($request->getContent(), true);
        $request->request->replace(is_array($data) ? $data : array());
    }

    $entity  = new User();
    $form = $this->createForm(new UserType(), $entity);
    $form->bind($request);
    ... 
}

如果是,我该怎么做? Backbone发送JSON请求体,而Symfony2表单对象的绑定方法只接受URL编码。我已经尝试过使用urlencode功能但没有成功。

2 个答案:

答案 0 :(得分:0)

是的,它是相关的,你应该总是做服务器端验证。我的问题是你的内容变量来自哪里?我不认为它是在上面的代码中分配的。

答案 1 :(得分:0)

您可以使用FOSRestBundle。它有一个“正文监听器”,它将解码请求体,并允许您将表单绑定到具有json体的请求。

您可以在FOSRestBundle documentation中了解有关此功能的更多信息。