CodeIgniter 4查询字符串显示问题:配置与路由设置疑问
在CodeIgniter 4中启用并获取查询字符串
版本差异对比
在CodeIgniter 3中,启用查询字符串只需在配置文件中设置:
$config['enable_query_strings'] = TRUE;
到了CodeIgniter 4,需要修改Config/App.php里的$uriProtocol配置项,可选两种设置:
public string $uriProtocol = 'PATH_INFO';
或者
public string $uriProtocol = 'QUERY_STRING';
解决查询参数获取问题
你提到调整路由后只能拿到控制器URL路径,其实不管uriProtocol怎么配置,都可以通过框架的请求类直接获取查询字符串参数:
- 获取单个查询参数:
$paramValue = $this->request->getGet('param_name');
- 获取所有查询参数组成的数组:
$allParams = $this->request->getGet();
路由适配注意事项
- 当设置
uriProtocol = 'QUERY_STRING'时,路由规则需要适配查询字符串模式,比如:
$routes->get('?c=(:segment)&m=(:segment)', '$1::$2');
- 若使用
PATH_INFO,查询字符串可直接附加在标准URL后(如example.com/controller/method?foo=bar),无需调整路由,依然能通过getGet()正常获取参数。
内容的提问来源于stack exchange,提问作者J. Robert West
相关产品推荐
相关产品推荐

