【问题标题】:The DELETE method is not supported for this route with laravel此路由不支持使用 laravel 的 DELETE 方法
【发布时间】:2020-06-25 20:29:00
【问题描述】:

我在我的项目中使用 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');

【问题讨论】:

    标签: laravel crud


    【解决方案1】:

    应该是

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        路线的正确声明是:

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

        【讨论】:

        • 这个答案还是错的;您缺少 '/{id}' 参数。
        猜你喜欢
        • 2021-09-04
        • 1970-01-01
        • 1970-01-01
        • 2022-10-01
        • 2021-02-01
        • 2019-10-11
        • 1970-01-01
        • 2019-09-10
        • 2021-09-09
        相关资源
        最近更新 更多