Laravel使用PATCH方法更新数据时出现MethodNotAllowedHttpException错误
解决Laravel中PATCH路由触发MethodNotAllowedHttpException的问题
问题根源
HTML原生表单仅支持GET和POST两种请求方法,你在表单标签里写method="PATCH"会被浏览器忽略,最终实际发送的是GET请求,而你的路由只配置了PATCH方法,因此触发了不允许的方法异常。
修复步骤
1. 修正表单的method属性
将表单的method改为POST,保留@method('PATCH')指令来伪造PATCH请求:
<form action="/checkPermissions" method="POST"> @method('PATCH') @csrf <!-- 你的表单字段 --> </form>
2. 验证路由与控制器
确保控制器中的check方法正确接收请求,示例如下:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class MyController extends Controller { public function check(Request $request) { // 处理PATCH请求逻辑 // 比如验证数据、更新模型等 return response()->json(['status' => 'success']); } }
3. 清除路由缓存(可选)
如果修改后仍有问题,执行以下命令清除路由缓存:
php artisan route:clear
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

