Мой метод GET не поддерживается для этого маршрута. (для удаления) Laravel 5.8

У меня есть представление таблицы с данными 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 в href

Maulik Shah 08.04.2019 14:59

мой маршрут delete1

Adhik Mulat 08.04.2019 15:04

Измените удаление, чтобы получить, если это почтовый запрос, вам нужно будет передать токен csrf и отправить его в виде формы.

Vipertecpro 08.04.2019 15:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
3
2 704
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

да, хорошо, я понял, на самом деле тег a не поддерживает метод удаления, если вы хотите использовать метод удаления, вам нужно использовать form, иначе используйте метод get в теге a.

Route::get('/admin/delete1/{id}', 'adminController@destroy1' )->name('delete1');

Надеюсь это поможет :)

вы имеете в виду, что метод get в теге добавляет метод = "удалить"

Adhik Mulat 08.04.2019 15:10
a действие тега автоматически рассматривается как метод получения, а a тег не поддерживает другие методы, такие как удаление, исправление, вставка и т. д.
Maulik Shah 08.04.2019 15:12

о, я вижу, тег a - это метод получения. спасибо сэр, не могли бы вы помочь мне с моей синтаксической ошибкой

Adhik Mulat 08.04.2019 15:36
Ответ принят как подходящий

Попробуйте добавить форму в столбец действий, обратите внимание, что у нас есть 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>"

этот синтаксис имеет много ошибок, вы можете его перестроить.

Adhik Mulat 08.04.2019 15:13

хорошо отредактировано, есть и лучше, в котором у вас будет только одна форма и модальное подтверждение удаления.

Osama Alvi 08.04.2019 15:25

этот CSRF и Method_Field выходят из кнопки, сэр :(

Adhik Mulat 08.04.2019 15:28

его верхняя кнопка

Adhik Mulat 08.04.2019 15:28

это {{csrf_field()}} {{method_field('DELETE')}} отображается в таблице, сэр

Adhik Mulat 08.04.2019 16:01

Другие вопросы по теме