为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
qq_花开花谢_0 2023-08-19 14:10:20
我试图找到一种解决方案来使用路由传递任意数量的参数。举个例子,如果我的路线是$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 中它接受所有参数并重定向到它各自的方法。先感谢您。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

经过一些研究并查看文档后。我已经想出了路由不可能的解决方案。我们可以通过内置库来实现这一点URI class

举个例子 - 如果我有像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 )


查看完整回答
反对 回复 2023-08-19
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信