如何在 ci4 路由中传递任意数量的参数?
How to pass a any numbers of parameters in ci4 routing?
我试图找到一个解决方案来使用路由传递任意数量的参数。
举个例子,如果我的路线是
$routes->get('pages/section/widgets/(:num)/(:num)/(:num)', 'Section::widgets///');
在这里我必须及时声明我传递的参数数量,即 3。
但是如果我不确定参数的数量,那么我该如何在 ci4 中传递它呢?
我检查了 documentation 并尝试了所有可能的占位符。但它不会像预期的那样工作。
为了在 Laravel 中更加清晰,我们使用 -
Route::get('/{page?}', 'Frontend\HomeController@inside')->where('page', '.*');
所以在 laravel 它接受所有参数并重定向到它各自的方法。
提前致谢。
经过一些研究和阅读文档。我想出了路由不可能的解决方案。我们可以通过内置库 URI class
来实现这一点。有关详细信息,请参阅 documentation。
举个例子——
如果我有 url 喜欢 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 )
谢谢。
我试图找到一个解决方案来使用路由传递任意数量的参数。
举个例子,如果我的路线是
$routes->get('pages/section/widgets/(:num)/(:num)/(:num)', 'Section::widgets///');
在这里我必须及时声明我传递的参数数量,即 3。
但是如果我不确定参数的数量,那么我该如何在 ci4 中传递它呢? 我检查了 documentation 并尝试了所有可能的占位符。但它不会像预期的那样工作。
为了在 Laravel 中更加清晰,我们使用 -
Route::get('/{page?}', 'Frontend\HomeController@inside')->where('page', '.*');
所以在 laravel 它接受所有参数并重定向到它各自的方法。
提前致谢。
经过一些研究和阅读文档。我想出了路由不可能的解决方案。我们可以通过内置库 URI class
来实现这一点。有关详细信息,请参阅 documentation。
举个例子——
如果我有 url 喜欢 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 )
谢谢。