CI4s重定向函数参数设置

Setting Parameters in CI4s redirecting function

是否有任何可能的方法在 Codeigniter 4 的重定向函数中发送参数? 重要的是,这是一条命名路线:

$routes->get('edit', 'Test_Controller::editTest/', ["as" => "editTest", "filter" => 'testFilter']);

我想做这样的重定向:

这很好用:

return $this->redirectTo('test/edit/' . $id1);

如果可行,那就太好了:

return redirect('editTest', array($passingID));

return redirect('editTest')->with($passingID);

为什么?我有 HMVC,我想用相同的路由但不同的功能来命名每个模块。这将帮助我拥有相同的网站网址。 (编辑,添加,a.s.o。)

简短的回答是不,这是不可能的。看一下 system/Common.php,您会发现 redirect() 函数只有 1 个参数。

然而,更长的答案是看看重定向功能的作用。

function redirect(?string $route = null): RedirectResponse
    {
    $response = Services::redirectresponse(null, true);

    if (! empty($route)) {
        return $response->route($route);
    }

    return $response;
}

根据当前 (4.1.4) 重定向函数,您会看到它调用 route()。事实证明,route() 允许第二个参数是参数。

因此解决方案可能是执行您自己的 redirect() 函数(参见 https://codeigniter.com/user_guide/extending/common.html?highlight=common)并允许第二个参数。