You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9点击确认按钮触发GET请求更新数据库时出现404错误

Laravel 9 点击「Confirm Registration」按钮出现404错误的排查与解决

核心问题:路由参数定义错误

你的404错误最直接的原因是路由参数格式不正确。在web.php的路由定义中,参数前多了一个$符号,导致Laravel无法正确匹配请求路径。

错误路由代码:

Route::get('/registration/confirmation/{$uniquecode}', 'ConfirmRegistration')->name('registration.confirm');

修正后的路由代码:

Route::get('/registration/confirmation/{uniquecode}', 'ConfirmRegistration')->name('registration.confirm');

其他辅助排查点

如果修正路由后仍有问题,可以逐一检查以下内容:

  • 验证生成的URL是否匹配路由规则
    在视图中临时打印生成的URL,确认格式是否正确:

    {{ route('registration.confirm', $view->uniquecode) }}
    

    正常情况下应该输出类似/registration/confirmation/你的uniquecode值的路径,如果格式不符,需要检查$view->uniquecode是否有异常值。

  • 检查uniquecode是否包含特殊字符
    如果uniquecode包含斜杠(/)等特殊字符,需要修改路由参数的匹配规则,允许匹配任意字符:

    Route::get('/registration/confirmation/{uniquecode:.+}', 'ConfirmRegistration')->name('registration.confirm');
    
  • 清除路由缓存
    运行以下命令清除路由缓存,确保新的路由配置生效:

    php artisan route:clear
    
  • 验证用户登录状态
    控制器中使用了Auth::user()->id,如果用户未登录会抛出异常,但通常这会导致500错误而非404。为了严谨,可以给路由添加登录验证中间件:

    Route::get('/registration/confirmation/{uniquecode}', 'ConfirmRegistration')
        ->name('registration.confirm')
        ->middleware('auth');
    

内容的提问来源于stack exchange,提问作者Wesley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:03:25