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.