2016-05-04 98 views
0

我使用的是laravel 5.2,Jquery 1.10和MYSQL 5.7。Laravel和jquery的數據表刪除行

我在laravel中爲我的消息模型使用RESTful服務。

我想呈現一個Jquery數據表中的消息列表,並提供一個刪除按鈕,每當按下時應該觸發MessageController.php銷燬方法,刪除行然後重新加載消息索引頁顯示更新的數據表。

數據表最初是正確生成的,但刪除按鈕不會觸發控制器上的刪除方法。我假設我的ajax代碼生成刪除按鈕必須是錯誤的。

在此先感謝您的幫助。

我的數據表中的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> 

的消息控制器刪除方法 -

public function destroy($id) 
{ 
    Message::destroy($id); 

    return Redirect::route('message.index'); 
} 

回答

0

我如果您使用的是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第219行異常中得到一個MethodNotAllowedHttpException異常。 405錯誤。奇怪的是,刪除路線存在,並在另一個刀片上運行。 – user4074875

+0

已排序。需要將csrf標記添加到刪除http方法。 Laravel岩石! – user4074875