Laravel中POST提交表单跳转路由报错:不支持GET方法
问题分析与解决
错误提示显示你尝试用GET方法访问profile-list路由,但系统识别该路由仅支持POST方法——这和你在web.php里定义的GET路由矛盾,核心原因及解决办法如下:
1. 同名路由被覆盖
检查所有路由文件(包括引入的外部路由),是否存在后定义的同名POST路由覆盖了现有GET路由。Laravel中后定义的同名路由会替换之前的,比如如果有类似代码出现在你的GET路由之后:
Route::post('/profile/{username}/{mobilenumber?}', [ProfileController::class, 'xxx'])->name('profile-list');
就会导致profile-list路由仅支持POST,GET请求自然报错。
2. 路由缓存未更新
如果之前执行过php artisan route:cache生成路由缓存,后续修改路由后未清除缓存,系统会一直使用旧的路由配置。执行命令清除缓存:
php artisan route:clear
之后重新测试即可。
3. 验证路由实际配置
运行php artisan route:list命令,查看输出中profile-list路由的请求方法和路径,确认它确实是GET方法、路径为/profile/{username}/{mobilenumber?}。如果输出显示为POST,那就是上述1或2的问题导致的。
内容的提问来源于stack exchange,提问作者Karuppiah RK
相关产品推荐
相关产品推荐

