Php 如何在ci4路由中传递任意数量的参数?

Php 如何在ci4路由中传递任意数量的参数?,php,codeigniter,codeigniter-4,Php,Codeigniter,Codeigniter 4,我试图找到一个解决方案,使用route传递任意数量的参数 例如,如果我的路线是 $routes->get('pages/section/widgets/(:num)/(:num)/(:num)', 'Section::widgets/$1/$2/$3'); 在这里,我必须立即声明我正在传递的参数数量,即3 但如果我不确定参数的数量,那么如何在ci4中传递这些参数呢? 我浏览并尝试了所有可能的占位符。但它不会像预期的那样起作用 为了在Laravel中更加清晰,我们使用- Route::ge

我试图找到一个解决方案,使用route传递任意数量的参数

例如,如果我的路线是

$routes->get('pages/section/widgets/(:num)/(:num)/(:num)', 'Section::widgets/$1/$2/$3');
在这里,我必须立即声明我正在传递的参数数量,即3

但如果我不确定参数的数量,那么如何在ci4中传递这些参数呢? 我浏览并尝试了所有可能的占位符。但它不会像预期的那样起作用

为了在Laravel中更加清晰,我们使用-

Route::get('/{page?}', 'Frontend\HomeController@inside')->where('page', '.*');
因此,在laravel中,它接受所有参数并重定向到其各自的方法


提前谢谢。

经过一些研究和查阅文档后。我已经想出了一个解决方案,这是不可能的路由。我们可以通过内置库
URI类
来实现这一点。有关更多信息,请参阅

例如- 如果我有像
http://example.com/test1/test2/test3
。然后在路线上我们可以像这样声明-

$routes->get('/(:any)', 'Home::index');
但在控制器中-

$uri = service('uri');
print_r($uri->getSegments());//this will give you all the segments in array.
所以这会打印出来-

Array ( [0] => test1 [1] => test2 [2] => test3 )
谢谢