Laravel数据表删除带有sweetalert的记录不起作用



我正在使用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': '&nbsp;',
'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

最新更新