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

迁移Laravel 9至VPS后出现$request变量未定义错误求助

问题分析与解决

问题根源

你的GET路由仅向视图传递了$token变量,但视图代码却尝试通过$request->route('token')获取token。Laravel的Blade视图默认不会自动注入$request变量,正常情况下这行代码在任何环境都应报错。虚拟主机上能正常运行,大概率是旧视图缓存未清理(比如之前视图使用的是{{ $token }},后续修改为$request但未清理缓存,虚拟主机仍保留着旧版本视图缓存),而VPS是全新部署,视图缓存为新生成状态,因此触发了真实的变量未定义错误。

修复方案

有两种可行的修复方式:

  • 方式一:直接使用路由传递的$token变量(推荐,符合路由逻辑)
    修改视图中报错的代码行:

    <input type="hidden" name="token" value="{{ $token }}">
    

    你的GET路由已经将$token传递到视图,直接使用该变量更直接合理。

  • 方式二:使用全局辅助函数获取请求对象
    若需保留通过请求对象获取的逻辑,可使用Laravel全局辅助函数,无需依赖注入$request变量:

    <input type="hidden" name="token" value="{{ request()->route('token') }}">
    

验证步骤

修复后执行以下命令确保缓存完全清理:

php artisan view:clear
php artisan route:clear

随后测试重置密码流程,确认错误消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:30:58