cómo eliminar en yajra datatables este es mi controlador de índice
public function index(Request $request) { // $list_user = User::all(); if($request->ajax()){ $user = User::latest()->get(); return datatables()->of($user) ->addIndexColumn() ->addColumn('action', function (User $user){ $actionBtn = '<a href="'.route('user.edit',$user->id).'" title="Edit User" class="btn btn-sm" style="color: #fff;background-color: #3DCB3A;border-color: #8ad3d3"> <i class="fa fa-edit"></i> </a> <a href="'.route('user.destroy',$user->id).'" class="btn btn-danger btn-sm" title="Hapus User" onclick="hapusUsers('.$user->id.')"><i class="fa fa-trash "></i></a>'; return $actionBtn; }) ->rawColumns(['action']) ->make(true); } return view('dashboard.user.user'); // return response()->json($list_user); } }y este es mi controlador de destrucción
public function destroy($id) { if($id==1){return redirect()->back();} $user = User::findOrfail($id); $user->delete(); return response()->json(['messege'=>'success'],200); }y este javascript en mi opinión
@push('javascripts') <script type="text/javascript"> $(function () { var table = $('.yajra-datatable').DataTable({ processing : true, serverSide : true, ajax :"{{route('user.index')}}", columns: [ {data: 'DT_RowIndex', name: 'DT_RowIndex'}, {data: 'name', name:'name'}, {data: 'username', name:'username'}, {data: 'email', name:'email'}, {data: 'action', name: 'action', orderable: false, searchable: false}, ], }); } ); </script> @endpushSolo quiero eliminar, pero no sé cómo hacerlo en el controlador. ¿Puedes arreglar mi controlador?
Reemplace su controlador con esto y verifique:
public function index(Request $request) { // $list_user = User::all(); if($request->ajax()){ $user = User::latest()->get(); return datatables()->of($user) ->addIndexColumn() ->addColumn('action', function (User $user){ $actionBtn = '<a href="'.route('user.edit',$user->id).'" title="Edit User" class="btn btn-sm" style="color: #fff;background-color: #3DCB3A;border-color: #8ad3d3"> <i class="fa fa-edit"></i> </a> <a href="'.route('user.destroy',$user->id).'" class="btn btn-danger btn-sm" title="Hapus User" ><i class="fa fa-trash "></i></a>'; return $actionBtn; }) ->rawColumns(['action']) ->make(true); } return view('dashboard.user.user'); // return response()->json($list_user); } }arreglé el botón eliminar con alerta
este es el Http/Controllers/UserController.php
public function index(Request $request) { // $list_user = User::all(); if($request->ajax()){ $user = User::latest()->get(); return datatables()->of($user) ->addIndexColumn() ->addColumn('action', function (User $user){ $actionBtn = '<a href="'.route('user.edit',$user->id).'" title="Edit User" class="btn btn-sm" style="color: #fff;background-color: #3DCB3A;border-color: #8ad3d3"> <i class="fa fa-edit"></i> </a> <a href="javascript:void(0)" class="btn btn-danger btn-sm" title="Hapus User" onclick="hapus('.$user->id.')" ><i class="fa fa-trash "></i></a>'; return $actionBtn; }) ->rawColumns(['action']) ->make(true); } return view('dashboard.user.user'); // return response()->json($list_user); }estos son los recursos/vistas/tablero/usuario/usuario.blade.php agregue esto en la @sección superior
@push('stylesheets') <link rel="stylesheet" href="{{asset('assets/plugins/sweetalert2-theme-bootstrap-4/bootstrap-4.min.css')}}"> @endpushy agrega esto en la sección inferior
@push('javascripts') <script src="{{asset('assets/plugins/sweetalert2/sweetalert2.min.js')}}"></script> <script type="text/javascript"> $(function () { var table = $('.yajra-datatable').DataTable({ processing : true, serverSide : true, ajax :"{{route('user.index')}}", columns: [ {data: 'DT_RowIndex', name: 'DT_RowIndex'}, {data: 'name', name:'name'}, {data: 'username', name:'username'}, {data: 'email', name:'email'}, {data: 'action', name: 'action', orderable: false, searchable: false}, ], }); } ); function hapus(e) { var url = '{{ route("user.destroy", ":id") }}'; url = url.replace(':id', e); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); Swal.fire({ title : "Apakah Anda Yakin ?", text : "Data Yang Sudah Dihapus Tidak Bisa Dikembalikan!", icon : "warning", showCancelButton : true, confirmButtonColor: "#3085d6", cancelButtonColor : "#d33", confirmButtonText : "Ya, Tetap Hapus!" }).then((result) => { if (result.value) { $.ajax({ url : url, type : "delete", success: function(data) { $('.yajra-datatable').DataTable().ajax.reload(); } }) } }) } </script> @endpush