【问题标题】:Laravel Datatable delete record with sweetalert dont workingLaravel Datatable 删除带有甜蜜警报的记录不起作用
【发布时间】:2020-11-20 02:25:24
【问题描述】:

我正在使用 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.column(刀片)

<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;
            })
        }

显示此错误

DELETE http://127.0.0.1:8000/admin/users/ 405(方法不允许)

删除http://127.0.0.1:8000/admin/users/undefined 500(内部 服务器错误)

【问题讨论】:

    标签: laravel datatable sweetalert


    【解决方案1】:

    405 表示您的路线不接受该方法。您需要检查路由 /admin/users 是否能够使用删除方法

    Route::delete($uri, $callback);
    

    您可以在以下页面查看更多关于路由的信息: https://laravel.com/docs/7.x/routing

    但是您可能还需要清除路由缓存

    php artisan route:cache
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      相关资源
      最近更新 更多