Метод DELETE не поддерживается для этого маршрута.Поддерживаемые методы: GET, HEAD, POST - PullRequest
0 голосов
/ 24 мая 2019

Я создаю форму индекса, которая отображает некоторые данные.Все готово, но когда я нажимаю кнопку удаления, я получаю сообщение об ошибке «Метод DELETE не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD, POST.»

Route

Route::group(['middleware' => ['auth']], function() {
    Route::resource('roles','RoleController');
    Route::resource('users','UserController');
    Route::resource('kamar_theresia','Kamar_TheresiaController');
});

Контроллер

public function destroy($id)
    {
        Kamar_Theresia::find($id)->delete();
        return redirect()->route('kamar_theresia.index')
                        ->with('success','Kamar Theresia deleted successfully');
    }

Просмотр

        @foreach ($kamar_theresia as $tere)
        <tr>
            <td>{{ ++$i }}</td>
            <td>{{ $tere->nama }}</td>
            <td>{{ $tere->name }}</td>
            <td>{{ $tere->ketersediaan }}</td>
            <td>
                @can('theresia-delete')
                {!! Form::open(['method' => 'DELETE','route' => ['kamar_theresia.destroy', $tere->id],'style'=>'display:inline']) !!}
                {!! Form::submit('Delete', ['class' => 'btn btn-danger']) !!}
                {!! Form::close() !!}
                @endcan
            </td>
        </tr>
        @endforeach

Ответы [ 3 ]

1 голос
/ 24 мая 2019

Это потому, что вы передаете метод DELETE как метод вашей формы, и это неправильно, правильная вещь - это метод pass de POST.

Проверьте этот пример:

<form action="{{ route('kamar_theresia.destroy', $tere->id) }}" method="POST">
    @csrf
    @method('delete')
    <button type="submit" class="btn btn-outline-danger">Delete</button>
</form>

Ваш контроллер должен быть:

public function destroy(Kamar_Theresia $khamar_teresia)
{
    $khamar_teresia->delete();
    return redirect()->route('kamar_theresia.index')
                    ->with('success','Kamar Theresia deleted successfully');
}
0 голосов
/ 24 мая 2019

Похоже, ты почти у цели!Я бы использовал POST для формы, подобной этой:

{{ Form::open(['method' => 'POST', 'route' => ['kamar_theresia.destroy']) }}
    {{ Form::hidden('id',$tere->id) }}
    {{ Form::submit('Delete') }}
{{ Form::close() }}

, а затем в вашем контроллере

public function destroy(Request $request){
    $id = $request->input('id');
    Kamar_Theresia::find($id)->delete();

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

0 голосов
/ 24 мая 2019

Используйте {{ csrf_field() }} и {{ method_field('DELETE') }} в форме.

 {{ csrf_field() }}
 {{ method_field('DELETE') }} 

Используйте это в Controller

public function destroy($id)
    {
       $delete = kamar_theresia::find($id);
       $delete->delete();
       return redirect('/')->with('deleted','Kamar Theresia deleted successfully');
    }

, если мы используем Route::resource(), тогда он будет автоматически направлен с функцией уничтожения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...