Symfony,@ Method注释无法识别DELETE?

时间:2014-04-24 18:33:05

标签: symfony methods annotations

尝试删除没有表单按钮的实体,而是删除链接,但是当我在注释中创建方法时,该方法没有设置为DELETE。

错误:

No route found for "GET /edit/delete/GREEN": Method Not Allowed (Allow: DELETE)

我的删除功能:

  /**
 * @param Request $request
 * @param $dano
 * @Route("/delete/{dano}", name="edit_deleteda")
 * @Method("DELETE")
 */
public function deleteDAAction($dano) {

    $em = $this->getDoctrine()->getManager();

    $entity = $em->getRepository('CIRBundle:SumitomoMain')->findOneByDano($dano);

    if (!$entity) {
        throw $this->createNotFoundException('Unable to find entity to delete');
    }

    $em->remove($dano);
    $em->flush();

    return $this->render('CIRBundle:Edit:delete.html.twig', array(
      'entity' => $entity
    ));

}

Twig模板:

 ....codes...
                <td><a href="{{ path('edit_editeda', { 'dano': dano.dano }) }}" class="action">Edit</a> <a href="{{ path('edit_deleteda', { 'dano' : dano.dano }) }}" class="action">Delete</a></td>
            </tr>

1 个答案:

答案 0 :(得分:1)

你正在混合苹果和橘子。

是的,@Method通货紧缩是正确的,但它应该与HTTP协议和自定义制作的请求一起使用 - 那些可以定义 http方法

  • 表单可以生成GET / POST方法请求
  • 链接可以生成GET方法请求

您可以详细了解HTTP的方法 here