我正在使用CI创建这个新应用程序的QA。实施分页后,处理无效页码的典型方法是什么?没有什么能阻止我手动更改URL中的偏移量。所以如果max是20,如果我修改为100会发生什么?我正在集思广益,检查偏移是否有效以及它是否在某处重定向或显示错误消息(不确定我是否愿意这样做)。
答案 0 :(得分:0)
您可以检查返回的结果数量并返回404。
if ($this->page->get_pages(20, 100) {
$this->load->view('our_view');
} else {
show_404();
}
答案 1 :(得分:0)
如果有人后来遇到这个问题,我就是这样解决问题的。
$max_offset = (ceil($config['total_rows'] / $config['per_page']) - 1) * $config['per_page'];
if (($this->start > $max_offset) && ($max_offset >= 0)) {
redirect("/report/filter");
} else {
$data['records'] = $this->report_model->filterItem($records, false, $config['per_page'], $this->start);
$this->load->view('report_view', $data);
}