迁移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
相关产品推荐
相关产品推荐

