У меня есть представление таблицы с данными yajra. до того, как я использую datatable, мое удаление нормально, но после использования datatables мое удаление имеет ошибку, подобную этой
The GET method is not supported for this route. Supported methods: DELETE.
я использую удаление маршрута, но это не сработало. Вы можете исправить мой код?
Посмотреть
<div class = "box-body table-responsive no-padding">
<table class = "table table-hover" id = "table">
<tbody><tr>
<thead>
{{-- <th>No</th> --}}
<th>Nama Alat</th>
<th>Waktu</th>
<th>User Input</th>
<th>Action</th>
<th>Edit</th>
<th>Hapus</th>
<th>Tanggal</th>
</thead>
</tr>
@push('scripts')
<script>
$(function () {
$('#table').DataTable({
processing: true,
serverSide: true,
responsive: true,
ajax: '{!! route('adminshow1dt') !!}',
columns: [
{data: 'alat.nama_alat', name: 'alat.nama_alat'},
{data: 'status', name: 'pemeliharaan.status'},
{data: 'user.name', name: 'user.name'},
{data: 'action', name: 'action', orderable: false, searchable: false},
{data: 'edit', name: 'edit', orderable: false, searchable: false},
{data: 'hapus', name: 'hapus', orderable: false, searchable: false},
{data: 'created_at', name: 'created_at'},
],
});
})
</script>
@endpush
мой контроллер и маршрут
public function show()
{
// $pemeliharaan = Pemeliharaan::all();
// $pemeliharaan = Pemeliharaan::find($id);
$pemeliharaan = Pemeliharaan::with(['user', 'alat'])->where('status', 'harian')->get();
return view('admin.view_harian', ['pemeliharaan' => $pemeliharaan]);
}
public function indexDataTablesh()
{
$pemeliharaan = Pemeliharaan::with(['user', 'alat'])->where('status', 'harian')->get();
return Datatables::of($pemeliharaan)
->addColumn('action', function ($pemeliharaan) {
return '<a href = "/admin/show/question/' . $pemeliharaan->id . '" class = "btn btn-xs btn-primary"><i class = "glyphicon glyphicon-eye-open"></i> View Data</a>';
})
->editColumn('edit', function ($pemeliharaan) {
return '<a href = "/admin/' . $pemeliharaan->id . '/edit_harian" class = "btn btn-xs btn-success"><i class = "glyphicon glyphicon-edit"></i> Edit</a>';
})
->editColumn('hapus', function ($pemeliharaan) {
return '<a href = "/admin/delete1/' . $pemeliharaan->id . '" class = "btn btn-xs btn-danger"><i class = "glyphicon glyphicon-remove-circle"></i> Hapus</a>';
})
->rawColumns(['hapus' => 'hapus', 'action' => 'action', 'edit' => 'edit'])
->make(true);
}
Маршруты
Route::delete('/admin/delete1/{id}', 'adminController@destroy1' )->name('delete1');
Route::get('admin/show1', 'adminController@show')->name('adminshow1');
Route::get('admin/show1-dt', 'adminController@indexDataTablesh')->name('adminshow1dt');
Вы можете исправить этот код, пожалуйста?
мой маршрут delete1
Измените удаление, чтобы получить, если это почтовый запрос, вам нужно будет передать токен csrf и отправить его в виде формы.
да, хорошо, я понял, на самом деле тег a
не поддерживает метод удаления, если вы хотите использовать метод удаления, вам нужно использовать form
, иначе используйте метод get в теге a
.
Route::get('/admin/delete1/{id}', 'adminController@destroy1' )->name('delete1');
Надеюсь это поможет :)
вы имеете в виду, что метод get в теге добавляет метод = "удалить"
a
действие тега автоматически рассматривается как метод получения, а a
тег не поддерживает другие методы, такие как удаление, исправление, вставка и т. д.
о, я вижу, тег a - это метод получения. спасибо сэр, не могли бы вы помочь мне с моей синтаксической ошибкой
Попробуйте добавить форму в столбец действий, обратите внимание, что у нас есть method_field "delete" и csrf_field.
$c = csrf_field();
$m = method_field('DELETE');
return "<form action='admin/delete1/$pemeliharaan->id' method='POST'>
$c
$m
<button style='margin-left:10px; width: 150px;' type='submit'
class='btn btn-xs btn-danger'>
<i class='glyphicon glyphicon-remove-circle'></i> Hapus
</button>
</form>"
этот синтаксис имеет много ошибок, вы можете его перестроить.
хорошо отредактировано, есть и лучше, в котором у вас будет только одна форма и модальное подтверждение удаления.
этот CSRF и Method_Field выходят из кнопки, сэр :(
его верхняя кнопка
это {{csrf_field()}} {{method_field('DELETE')}} отображается в таблице, сэр
у вас есть delete1 в href