我正在尝试对查询返回的搜索结果进行分页。我有以下网址:
blog/search?query=post/5
我试图通过以下方式从网址获取$start=5
的值:
$start = $this->uri->segment(3);
它没有返回任何东西。
删除?query=post
,即blog/search/5
正常工作。但我想保留查询参数并读取值。
答案 0 :(得分:1)
这是因为URI中的?
字符。 CodeIgniter URI解析器(以及任何其他标准URI解析器)无法识别您的想法。在?
字符之后,它是所有查询字符串,而不是URI段。请参阅PHP parse_url()
的输出:
parse_url('blog/search?query=post/5')
[
"path" => "blog/search",
"query" => "query=post/5",
]
请参阅?第一个段是blog
,第二个段是search
,其余的是查询字符串。
您需要以标准方式更改URI设计。例如:
blog/search/5?query=post
因此,对$this->uri->segment(3)
的调用将返回您的想法。
说到CodeIgniter分页库,请参阅documentation中的reuse_query_string
和page_query_string
配置。