2017-03-31 115 views
0

我的編輯/刪除工作正常,當我繼續在我的項目上工作時,它停止了工作。我嘗試編輯或刪除時收到此消息。編輯/刪除不起作用symfony 3

DELETE /灌木/ 1 /編輯「未找到路線‘’:不允許的方法(允許:GET,POST,HEAD)」

我以爲控制器處理這還是我需要的東西在路由.yml呢?

我有這個在我的控制器:

/** 
    * Displays a form to edit an existing Shrubs entity. 
    * 
    * @Route("/{id}/edit", name="shrubs_edit") 
    * @Method({"GET", "POST"}) 
    */ 
    public function editAction(Request $request, Shrubs $shrub) 
    { 
    $deleteForm = $this->createDeleteForm($shrub); 
    $editForm = $this->createForm('AppBundle\Form\ShrubsType', $shrub); 
    $editForm->handleRequest($request); 

    if ($editForm->isSubmitted() && $editForm->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($shrub); 
     $em->flush(); 

     return $this->redirectToRoute('shrubs_edit', array('id' => $shrub->getId())); 
    } 

    return $this->render('shrubs/edit.html.twig', array(
     'shrub' => $shrub, 
     'edit_form' => $editForm->createView(), 
     'delete_form' => $deleteForm->createView(), 
    )); 
} 

/** 
* Deletes a Shrubs entity. 
* 
* @Route("/{id}", name="shrubs_delete") 
* @Method("DELETE") 
*/ 
public function deleteAction(Request $request, Shrubs $shrub) 
{ 
    $form = $this->createDeleteForm($shrub); 
    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->remove($shrub); 
     $em->flush(); 
    } 

    return $this->redirectToRoute('shrubs_index'); 
} 

/** 
* Creates a form to delete a Shrubs entity. 
* 
* @param Shrubs $shrub The Shrubs entity 
* 
* @return \Symfony\Component\Form\Form The form 
*/ 
private function createDeleteForm(Shrubs $shrub) 
{ 
    return $this->createFormBuilder() 
     ->setAction($this->generateUrl('shrubs_delete', array('id' => $shrub->getId()))) 
     ->setMethod('DELETE') 
     ->getForm() 
    ; 
} 

我的編輯頁面有這樣的:

<button type="submit" id="register-submit-btn" class="btn btn-success">Edit</button> 

    {{ form_start(delete_form) }} 
    <input type="submit" value="Delete"> 
    {{ form_end(delete_form) }} 

如果我需要的東西爲我的routing.yml我會怎麼加?

回答

0

嘗試在路由中添加DELETE方法,這是錯誤消息所說的內容。 您使用DELETE方法,但只允許GET, POST

/** 
* Displays a form to edit an existing Shrubs entity. 
* 
* @Route("/{id}/edit", name="shrubs_edit") 
* @Method({"DELETE", "GET", "POST"}) 
*/ 
public function editAction(Request $request, Shrubs $shrub) 
+0

工作,謝謝。 – Sowa