私はlaravel 5.2、Jquery 1.10とMYSQL 5.7を使用しています。Laravelとjquery datatable delete行
私はメッセージモデルにlaravelのRESTfulサービスを使用しています。
私はJqueryデータテーブルにメッセージのリストをレンダリングしようとしています。各行には、MessageController.phpのdestroyメソッドを起動し、その行を削除してからメッセージインデックスページを更新されたデータテーブルを表示します。
データテーブルは最初は正しく生成されていますが、削除ボタンはコントローラのdeleteメソッドを起動しません。私は削除ボタンを生成するための私のアヤックスコードが間違っている必要がありますと仮定しています。
ご協力いただきありがとうございます。
私のDataTableのAjaxスクリプトが
$(document).ready(function() {
$('#message_table').DataTable({
"searchable": false,
"ajax": {
"url": "/api/message",
"type": "POST",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
},
"columns": [
{ "data": "id"},
{ "data": "subject",
"render": function(data,type,row,meta) {
return '<a href="/message/'+row.id+'">'+data+'</a>';
}
},
{ "data": "created_at",
"render": function (data, type, full, meta) {
// instantiate a moment object and hand it the string date
var d = moment(data);
var month = d.month() +1 < 10 ? "0" + (d.month() +1) : d.month() +1;
var day = d.date() < 10 ? "0" + (d.date()): d.date();
return month + "/" + day + "/" + d.year();
}
},
{"defaultContent": "null", "render": function(data,type,row,meta) {
return '<button action="' + $(location).attr('protocol') + $(location).attr('host') + '/message/'+row.id+ '"' + 'name="_method"' + 'method="post"' +'type="submit"' + 'value="Delete"'+'>'+ 'Delete</button>';
}
}
]
});
});
最後の関数から削除ボタン用に生成されたHTMLが
<button action="http:localhost:8000/message/6" name="_method" method="post" type="submit" value="Delete">Delete</button>
メッセージコントローラがMETHOD-削除IS-IS-
public function destroy($id)
{
Message::destroy($id);
return Redirect::route('message.index');
}
ありがとうございます。ボタンHTMLが動作しています。 RouteCollection.php行でMethodNotAllowedHttpExceptionが発生しました。 405エラー。削除ルートが存在し、別のブレードで動作するので不思議です。 – user4074875
ソート済みcsrfトークンをdelete httpメソッドに追加するために必要です。ララベルの岩! – user4074875