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 请求。
我有一个带有 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 请求。