PUT 表单不会在 Symfony 2 中更新

PUT Form doesn't Update In Symfony 2

我有一个带有 PUT 方法的表格

{{ form(formEdit, {'action': path('user_update',{'id':user.id}), 'method': 'PUT'}) }}

我的行动是

/**
     * Edits an existing User entity.
     *
     * @Route("/{id}", name="user_update")
     * @Method("PUT")
     * @Template("foo:User:update.html.twig")
     * @ParamConverter("User", class="foo:User")
     */
    public function updateAction(Request $request,User $user){
        $form = $this->createForm(new UserType(), $user);
        $form->handleRequest($request);
        if ($form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($user);
            $em->flush();

            return $this->redirect($this->generateUrl('user',array('id' => $user->getId())));
        }


        return array(
            'formEdit' => $form->createView(),
            'user' => $user
        );
    }

我的树枝

{{ form(formEdit, {'action': path('user_update',{'id':user.id}),'method':'PUT'}) }}

当我提交表格时,我没有任何错误。 如果我将 PUT 更改为 POST,则该表单有效。 我试过

    echo $request->getMethod();
    echo $form->getErrorsAsString();

这是我的输出

PUT
name: No errors surname: No errors email: No errors gender: 0: No errors 1: No errors submit: No errors name: No errors surname: No errors email: No errors gender: 0: No errors 1: No errors submit: No errors

但我不明白如何捕捉到该错误。我正在使用 Symfony 2.3

表单只能处理 POST 和 GET 请求。您可以看到 here 为什么没有将 PUT 和 DELETE 添加为表单方法。

您只能通过 AJAX 调用发送 PUT 请求。