我有一份要求清单,我可以删除一些,所以我为每个需求创建了一条路径:
<a href="{{ path('etudiant_suprimer_demande',{'id':demande.id} )}}
我有一个这样的控制器:
class EdudiantController extends Controller
{ //codes
public function suprimerdemandeAction($id){
// echo $id;
$em = $this->getDoctrine()
->getEntityManager();
$demande = $em->getRepository('AcmeEstmSiteBundle:Demande')
->find($id);
if ($demande == null) {
throw $this->createNotFoundException('Demande[id='.$id.']inexistant');
}
if ($this->get('request')->getMethod() == 'POST') {
$this->get('session')->getFlashBag()->add('info', 'Demande bien supprimée');
return $this->redirect( $this->generateUrl('acme_estm_site_espace_etudiant'));
}
//return $this->render('SdzBlogBundle:Blog:supprimer.html.twig',array('demande' => $demande));
return new Response();
}
路由是:
etudiant_suprimer_demande:
path: /profile/espace/suprimerdemande/{id}
defaults: { _controller: AcmeEstmSiteBundle:Edudiant:suprimerdemande }
methods: POST
我想要的是不要在URL中显示要求的ID,这意味着我希望使用post方法执行此操作但是我有这样的错误:
找不到&#34; GET / profile / espace / suprimerdemande / 3&#34;的路由:不允许的方法(允许:POST)
答案 0 :(得分:1)
<form action="{{ path('etudiant_suprimer_demande',{'id': demande.id} )}}" method="post">
<button type="submit">Delete</button>
</form>
您现在拥有的代码只会生成<a>
链接,当用户点击该链接时,他的用户代理会向服务器发送GET
请求,从而产生错误。
要创建POST
请求,您需要<form>
。
要回答有关在生成的网址中显示ID的问题,请查看this answer。您必须更改控制器和路由。