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

Laravel 8:路由重定向时保留URL参数的实现问题

解决Laravel重定向时保留URL参数的问题

问题根源

你碰到的Call to undefined method Illuminate\Support\Facades\Request::query()错误,是因为代码里的Request $request没有正确导入Illuminate\Http\Request类,Laravel自动解析成了Illuminate\Support\Facades\Request门面类,而这个门面并没有query()方法。

修复方案

方案1:导入正确的Request类

在你的路由文件顶部添加正确的类导入:

use Illuminate\Http\Request;

之后原代码就能正常工作:

Route::get('/login', function (Request $request) {
    return redirect()->route('doug-test', ['url'=> $request->query('url')]);
})->middleware('not-auth')->name('login');

方案2:使用request()辅助函数(更简洁)

直接用Laravel提供的全局辅助函数request(),不需要依赖注入,代码更清爽:

Route::get('/login', function () {
    return redirect()->route('doug-test', ['url' => request('url')]);
})->middleware('not-auth')->name('login');

额外技巧:传递所有查询参数

如果需要保留原请求的所有查询参数,不用单独指定url,直接传递全部查询数组即可:

Route::get('/login', function () {
    return redirect()->route('doug-test', request()->query());
})->middleware('not-auth')->name('login');

验证效果

访问/login?url=/xyz时,会自动重定向到/dougs-page?url=/xyz(对应路由doug-test),参数完全保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:15:42