我正在使用DataTables和Sweetalert,但我遇到了一个问题,在Sweetalert中确认后,没有删除任何内容,我得到了2个错误。
我的控制器(索引和销毁(:
public function index(Request $request)
{
if ($request->ajax()) {
$data = User::select('id','firstName')->get();
return Datatables::of($data)
->addColumn('action', 'partials.column')->rawColumns(['action'])
->make(true);
}
return view('admin.users.index');
}
public function destroy($id)
{
User::find($id)->delete();
return response()->json(['success'=>'Item deleted successfully.']);
}
Partials.柱(叶片(
<td><a href="#" class="dropdown-item deleteItem" data-id="" data-action="" onclick="deleteConfirmation()"><i class="bx bx-trash mr-1"></i> delete</a></td>
和js代码
$(document).ready(function () {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var s, e = [];
0 < $("#users-list-datatable").length && (s = $("#users-list-datatable").DataTable({
order: [[0, "desc"]],
pageLength: 10,
processing: true,
serverSide: false,
language: {
'loadingRecords': ' ',
'processing': '<div class="spinner-border text-light spinner-border-lg"></div>'
},
ajax: "{{ route('admin.users.index')}}",
columns: [
{data: 'id', name: 'id'},
{data: 'firstName', name: 'firstName'},
{data: 'action', name: 'action', orderable: false, searchable: false},
],
}))
});
function deleteConfirmation(id) {
swal({
title: "Delete?",
text: "Please ensure and then confirm!",
type: "warning",
showCancelButton: !0,
confirmButtonText: "Yes, delete it!",
cancelButtonText: "No, cancel!",
reverseButtons: !0
}).then(function (e) {
if (e.value === true) {
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
$.ajax({
type: 'DELETE',
url: "{{ route('admin.users.destroy','') }}"+'/'+id,
data: {_token: CSRF_TOKEN},
dataType: 'JSON',
success: function (results) {
if (results.success === true) {
swal("Done!", results.message, "success");
} else {
swal("Error!", results.message, "error");
}
}
});
} else {
e.dismiss;
}
}, function (dismiss) {
return false;
})
}
显示此错误
DELETEhttp://127.0.0.1:8000/admin/users/405(不允许的方法(
删除http://127.0.0.1:8000/admin/users/undefined500(内部服务器错误(
405表示您的路由不接受该方法。您需要检查路由/admin/users是否能够使用删除方法
Route::delete($uri, $callback);
您可以在以下页面上查看有关路由的更多信息:https://laravel.com/docs/7.x/routing
但是,您可能还需要使用清除路由缓存
php artisan route:cache