2016-08-01 3 views

Antwort

0

In Ihrem {{what do i put here?}} Abschnitt wird wie folgt

{{ route('routeName', ['id' => $comment->id]) }} 

siehe https://laravel.com/docs/5.2/routing#named-routes

Hinweis einen Link zur Laravel Route, etwas wollen, dass diese eine GET-Methode verwenden müssen, es könnte jedoch mehr normal sein Um ein Formular zu verwenden und dann können Sie PUT oder DELETE verwenden, was in diesem Fall mehr Sinn macht. Alternativ verwende ich oft AJAX von dieser Art von Anfrage.

0

Sie können diese Methode verwenden: https://gist.github.com/JeffreyWay/5112282 , um einen Kommentar oder was auch immer zu löschen, indem Sie einen Link verwenden. Fügen Sie JavaScript, die in dem obigen Link irgendwo auf Ihrem Kopf und legen Sie den HTML-Link auf Ihrer Ansicht zur Verfügung gestellt:

<a href="delete/{{$id}}(or whatever delete route you have)" data-method="delete" data-token="{{csrf_token()}}" data-confirm="Are you sure you want to delete this x ?"> 

Dann können Sie Ihre Route sein:

Route::delete('delete/{id}','[email protected]_delete_method'); 
0

die Lösung gefunden. Wir müssen ein verstecktes Eingabefeld im HTML erstellen, wie unten für csrf-Token.

und müssen ein a-Tag mit href wie unten erstellen.

<a class="js-ajax-delete" href="{{route('comment.destroy', $comment->id)}}" ><span class="glyphicon glyphicon-trash"></span></a> 

Das Skript würde wie folgt aussehen:

jQuery(document).ready(function($){ 

    $('.js-ajax-delete').click(function(e){ 
     e.preventDefault(); 
     var deleteUrl = $(this).attr('href'); 
     var token = $('#token').val(); 

     $('<div id="dialog" class="pull-center"></div>').appendTo('body').html('<div"><h4>Are you sure you want to delete this comment?</h4></div>') 
     .dialog({ 

      autoOpen: true, 
      modal : true, 
      title : 'Confirm', 
      buttons: { 
       "Yes" : function(){ 

        $(this).dialog('close'); 

        $.ajaxSetup({ 
          headers: { 
           'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
          } 
         }); 

        //Delete request 
         $.ajax({ 
          type: 'DELETE', 
          url: deleteUrl, 
          data: { _token :token }, 
          success: function(data){ 
           if (data == "true") { 
           window.location.href=window.location.href; 
           }; 
          } 
         }); 
       }, 
       "No" : function(){ 
        $(this).dialog('close'); 
       } 
      } 
     });   

    }); 
}); 

und die Löschmethode in der Steuerung so sein würde:

public function destroy($id) 
    { 
     $comment = Comment::find($id); 
     $comment->delete(); 
     session()->flash('success', 'Comment has been deleted'); 
     return "true";//it has to be a string 
    } 

das Dialogfeld wir jQuery ausführen müssen laden -UI zusammen mit jQuery natürlich. Hoffe es hilft jemandem.

Verwandte Themen