Php 如何在ci4路由中传递任意数量的参数?
我试图找到一个解决方案,使用route传递任意数量的参数 例如,如果我的路线是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
$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 )
谢谢