2017-11-27 17 views
0

私は、//{id}パスに行かず、モーダルポップインで削除するだけで、広告を削除したいと考えています。 DEV環境で は、何の問題は、私のフォームの検証はそのような素晴らしい作品なかっ:symfony 2 csrf検証トークン

form.html.twig:

<div class="well"> 
{# form_start(form, {'attr': {'class': ''}}) #} 
<form name="monext_perfclientbundle_advert" method="post" action="" class="" enctype="multipart/form-data"> 

{# Les erreurs générales du formulaire. #} 
{{ form_errors(form) }} 

<div class="form-group"> 
    {# Génération du label. #} 
    {{ form_label(form.title, "Titre de l'annonce", {'label_attr': {'class': 'col-sm-3 control-label'}}) }} 

    {# Affichage des erreurs pour ce champ précis. #} 
    {{ form_errors(form.title) }} 

    <div class="col-sm-4"> 
     {# Génération de l'input. #} 
     {{ form_widget(form.title, {'attr': {'class': 'form-control'}}) }} 
    </div> 
</div> 

<div class="form-group"> 
    {{ form_label(form.content, "Contenu de l'annonce", {'label_attr': {'class': 'col-sm-3 control-label'}}) }} 
    {{ form_errors(form.content) }} 
    <div class="col-sm-4"> 
     {{ form_widget(form.content, {'attr': {'class': 'ckeditor'}}) }} 
    </div> 
</div> 

{{ form_row(form.category) }} 

    <button id="addFile">Ajouter un fichier</button> 
    <div id="uploads"></div><br> 

{{ form_widget(form.save, {'attr': {'class': 'btn btn-primary'}}) }} 

{{ form_rest(form) }} 

{{ form_end(form) }} 

</form> 

info.html.twig:

<div class="modal-footer parente"> 
    <div><a href="#" class="btn" data-dismiss="modal">Annuler</a></div> 
    <div> 
    <form class="nomargin" action="{{ path('info_delete', {'id': advert.id}) }}" method="post"> 
    <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"> 
    <input type="submit" value="Supprimer" class="btn btn-danger"/>{{ form_rest(form) }}                   
</form> 
    </div> 
</div> 

deleteAction():

  $form = $this->createFormBuilder()->getForm(); 
     if ($form->handleRequest($request)->isValid()) { 
      $em->remove($advert); 
      $em->flush(); 

      $request->getSession()->getFlashBag()->add('info', "L'annonce a bien été supprimée."); 
      return $this->redirect($this->generateUrl('info')); 
     } 

     return $this->render('MonextPerfclientBundle:Default:delete.html.twig', array(
      'advert' => $advert, 
      'form' => $form->createView() 
     )); 

これは実際には動作環境で動作しません。理由はわかりません。 ダンプ: CSRFトークンが無効です。フォームを再提出してください

+0

あなたのprodキャッシュをクリアしましたか? – habibun

+0

もちろんおいしい:) –

答えて

0

私はLuaxさんのおかげです。解決

{{ form_start(form, {'action': path('info_delete', {'id': advert.id})}) }} 
    <input type="hidden" name="form[_token]" value="{{ csrf_token('form') }}"> 
    <input type="submit" value="Supprimer" class="btn btn-danger"/>{{ form_rest(form) }} 
    {{ form_end(form) }} 

問題:)