laravel 这条路线不支持 DELETE 方法

The DELETE method is not supported for this route with laravel

我在我的项目中使用 laravel,我想删除一个约会,但我得到这个错误:这条路线不支持 DELETE 方法。支持的方法:GET、HEAD。

这是控制器:

    public function destroy($id)
    {
        $rdv = DB::table('rdv')->where('id',$id)->delete();
    
        return redirect()->back()->withSuccess('success delete !' ) ; 
    }
}

这是表格:

@if ( $getpat->Etat_de_rdv == 'en_attente') 
<td><label class="badge badge-warning"> {{$getpat->Etat_de_rdv}} </label></td>
<form method="POST" action="{{ route('delete', $getpat->id) }}">
 @method('DELETE')
 @csrf
<button type="submit">Supprimer rendez-vous</button>
</form>

这是web.php

 Route::get('/delete', 'rendezv@destroy')->name('delete');

应该是

Route::delete('/delete/{id}', 'rendezv@destroy')->name('delete');

您正在使用 Route::get(),但提供 @method('delete');这些是矛盾的。按如下方式修改您的路线:

Route::delete('delete', 'rendezv@destroy')->name('delete');

此外,您没有传递 $id 参数,因此 route('delete', $getpat->id) 将不起作用。您可以使用表单字段或 URL 参数来执行此操作:

Route::delete('delete/{id}', 'rendezv@destroy')->name('delete');

正确的路由声明是:

Route::delete('/delete', 'rendezv@destroy')->name('delete');