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)并允许第二个参数。
是否有任何可能的方法在 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)并允许第二个参数。