Laravel新手求助:注册表单无法访问指定路由问题排查
问题排查与解决步骤
移除表单中多余的
@method('post')指令:
你的表单已经明确声明了method="POST",而@method是Laravel用来模拟PUT/PATCH/DELETE这类非标准请求的工具,POST请求下该指令完全没必要,甚至可能干扰请求解析逻辑。修改后的表单代码:<form method="POST" action="{{ route('subscription.save') }}"> @csrf <!-- 你的表单字段 --> <button type="submit" class="btn btn-primary">Sign Up</button> </form>清除路由缓存:
如果你之前执行过php artisan route:cache,修改路由后旧缓存会持续生效,导致新路由无法被识别。运行以下命令清除缓存:php artisan route:clear检查浏览器网络请求详情:
提交表单时打开浏览器开发者工具(F12)的「网络」标签,查看请求状态:- 若出现302重定向,排查是否有
auth这类中间件自动跳转; - 若出现419状态码,说明CSRF令牌无效,尝试刷新页面重新获取令牌,或检查会话配置。
- 若出现302重定向,排查是否有
恢复控制器方法测试:
基础问题排查完成后,可以把路由改回指向控制器,验证功能是否正常:Route::post('/subscription', [SubscriptionController::class, 'store'])->name('subscription.save');确保
SubscriptionController已正确导入且store方法存在:namespace App\Http\Controllers; use Illuminate\Http\Request; class SubscriptionController extends Controller { public function store(Request $request) { dd('控制器store方法已触发'); } }
内容的提问来源于stack exchange,提问作者mini01
相关产品推荐
相关产品推荐

