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

Laravel中如何读取控制器动作重定向传递的参数?

如何在Laravel控制器中读取redirect()->action传递的参数

官方文档展示了重定向到控制器方法的写法:

return redirect()->action(
    [HomeController::class, 'index'], ['id' => 1]
);

要读取传递的id参数,有两种正确方式,你之前的尝试问题出在这些地方:

方式1:通过Request对象获取查询参数

当你用redirect()->action传递额外参数时,这些参数会被转为查询字符串(类似/home?id=1),所以需要从Request的查询数据中读取:

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index(Request $request)
    {
        // 两种写法都可以
        $id = $request->query('id');
        // 或者直接 $id = $request->id;
        dd($id);
    }
}

你之前用dd($request)时,参数其实在request->query属性里,只是没注意到。

方式2:路由参数绑定(需要对应路由定义)

如果希望直接通过方法参数接收id,你需要先在路由文件中给index方法定义对应的路由参数:

// routes/web.php
Route::get('/home/{id}', [HomeController::class, 'index']);

此时再用redirect()->action传递id,参数会被解析为路由参数,就能直接在方法中接收:

class HomeController extends Controller
{
    public function index($id)
    {
        dd($id);
    }
}

你之前尝试的错误点

  • 方式2失败是因为你的路由没有定义{id}参数,参数被转为查询字符串,无法直接注入到方法参数中。
  • 方式3完全错误,Laravel中不存在Action这个类,这是无效写法。

内容的提问来源于stack exchange,提问作者Artur Müller Romanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:18:24