提问者:小点点

Laravel-DELETE方法不支持删除路由


我是一个完全的初学者在拉威尔,目前正在做一个简单的管理面板。我有一个显示用户(姓名、电子邮件等)的网格我的问题可能很愚蠢,但我无法解决。我创建了用于删除用户的控制器方法:

public function destroy($id)
    {
        $user = User::find($id);
        $user->delete();

        return redirect('/admin')->with('success', 'User has been deleted');
    }

并定义路线如下:

Route::post('/admin/delete/{id}', 'AdminController@destroy')    
    ->middleware('is_admin')    
    ->name('admin.destroy');

要删除网格中的用户,我在视图中使用表单,甚至在设置标题中使用表单:

<td>
<form href="{{ route('admin.destroy', $user->id)}}" method="post">
   @method('DELETE')
   @csrf
   <input class="btn btn-danger" type="submit" value="Delete" />
</form>

每次我按下删除用户的按钮,我都会得到这个:

The DELETE method is not supported for this route. Supported methods: GET, HEAD.

我只是不明白我做错了什么。我试图改变路线类型后,但我得到同样的错误。


共1个答案

匿名用户

您的表单不包含操作,因此它将提交到与其所在的url相同的url,该url仅为GET/HEAD。

试试这个吧:

<form action="{{ route('admin.destroy', $user->id)}}" method="post">
   @method('DELETE')
   @csrf
   <input class="btn btn-danger" type="submit" value="Delete" />
</form>