Laravel 10管理员删除用户报错:GET方法不被支持
问题解决方法
1. 视图层核心错误:a标签直接发起GET请求
你当前的视图中,<a>标签通过href直接访问删除路由,这会发起GET请求,但你的路由仅支持DELETE方法,所以触发报错。表单里的@method('DELETE')完全没生效,因为你根本没有提交这个表单。
修复方式二选一:
方式一:用提交按钮替代a标签
把<a>标签换成表单提交按钮,通过CSS调整成链接样式:
<form action="{{ route('admin.users.destroy', $user) }}" method="POST"> @csrf @method('DELETE') <button type="submit" class="text-blue-500 hover:text-blue-700 bg-transparent border-0 p-0 cursor-pointer">Delete</button> </form>
方式二:用JS让a标签触发表单提交
保留a标签,但添加点击事件阻止默认跳转,手动提交对应表单:
<form id="delete-form-{{ $user->id }}" action="{{ route('admin.users.destroy', $user) }}" method="POST"> @csrf @method('DELETE') </form> <a class="text-blue-500 hover:text-blue-700" href="#" onclick="event.preventDefault(); document.getElementById('delete-form-{{ $user->id }}').submit();">Delete</a>
注意给每个用户的表单设置唯一ID,避免批量渲染时出现冲突。
2. 控制器层小错误:delete调用方式错误
你的控制器里$user->delete;是访问属性,不是调用删除方法,必须改成:
public function destroyUser(User $user) { $user->delete(); // 加括号调用删除方法 return redirect()->back(); }
额外检查项
- 清除路由缓存:执行命令
php artisan route:clear - 确认当前登录用户已通过
auth和isadmin中间件校验
内容的提问来源于stack exchange,提问作者Ludon89
相关产品推荐
相关产品推荐

