2016-05-04 26 views
0

私は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'); 
} 

答えて

0

Iあなたがlaravelの安静なコントローラを使用している場合、破壊メソッドはdelete httpメソッドです。したがって、次のような小さなフォームを作成することをお勧めします。

<form action="http:localhost:8000/message/6" method="post"> 
    <input type="hidden" name="_method" value="delete"> 
    <button type="submit">Delete</button> 
</form> 
+0

ありがとうございます。ボタンHTMLが動作しています。 RouteCollection.php行でMethodNotAllowedHttpExceptionが発生しました。 405エラー。削除ルートが存在し、別のブレードで動作するので不思議です。 – user4074875

+0

ソート済みcsrfトークンをdelete httpメソッドに追加するために必要です。ララベルの岩! – user4074875