【问题标题】:The DELETE method is not supported for this route. Supported methods: GET, HEAD, POST is not working此路由不支持 DELETE 方法。支持的方法:GET、HEAD、POST 不起作用
【发布时间】:2019-11-30 06:30:24
【问题描述】:

我想删除预订这是我的表格

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

这是我的控制器

public function delete($id){
    $booking = Booking::find($id);
    $booking->delete();
}

这是我的路线

Route::post('/bookings/delete', 'BookingController@delete')->name('bookings/delete');

【问题讨论】:

  • bookings/delete != bookings.delete 并且您显示的路线是 POST 路线而不是 DELETE 路线

标签: php laravel


【解决方案1】:

您的路线应定义为

Route::delete('/bookings/delete/{id}', 'BookingController@delete')->name('bookings.delete');

您还应该将 id 作为路由参数传递

在控制器的删除方法中

public function delete($id) 
{
         $booking = Booking::findOrFail($id);
         $booking->delete();

         return redirect()->route('bookings.index');
}

【讨论】:

【解决方案2】:

在你的路由文件中

name('bookings/delete'); 

应该是

name('bookings.delete');

试试看,然后告诉我们

【讨论】:

    【解决方案3】:

    如果您需要使用@method('delete'),那么您的路线应该是delete() 而不是post

    Route::delete('/bookings/delete/{id}', 'BookingController@delete')->name('bookings.delete');
    

    和形式:

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

    【讨论】:

    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-10-01
    • 2021-09-04
    • 1970-01-01
    • 2019-08-28
    • 2019-08-31
    相关资源
    最近更新 更多