Php 分页页面在codeigniter3框架中提供404
我已经在Codeigniter3框架中编写了分页代码,但是当我想转到第二、第三页等页面时,它会显示404页。问题出在哪里?我的路由文件:Php 分页页面在codeigniter3框架中提供404,php,codeigniter,pagination,Php,Codeigniter,Pagination,我已经在Codeigniter3框架中编写了分页代码,但是当我想转到第二、第三页等页面时,它会显示404页。问题出在哪里?我的路由文件: $route['courses/category/(:any)'] = 'courses/all_courses/$1'; $route['courses/(:any)'] = 'courses/single_course/$1'; 我的控制器: public function all_courses($categories_slug = NULL, $of
$route['courses/category/(:any)'] = 'courses/all_courses/$1';
$route['courses/(:any)'] = 'courses/single_course/$1';
我的控制器:
public function all_courses($categories_slug = NULL, $offset = 0) {
//pagination
$config['base_url'] = base_url() . 'courses/category/'.$categories_slug;
$config['total_rows'] = $this->db->count_all('courses');
$config['per_page'] = 2;
$config['uri_segment'] = 4;
$this->pagination->initialize($config);
$data['title'] = 'Bütün Kurslar Burada';
$data['courses'] = $this->courses_model->get_all_courses($categories_slug, $config['per_page'], $offset);
$this->load->view('templates/header');
$this->load->view('courses/courses', $data);
$this->load->view('templates/footer');
}
我的模型:
public function get_all_courses($categories_slug = FALSE, $limit = FALSE, $offset = FALSE) {
if($limit) {
$this->db->limit($limit, $offset);
}
<-- and other codes here -->
}
公共函数获取所有课程($categories\u slug=FALSE,$limit=FALSE,$offset=FALSE){
如果($限额){
$this->db->limit($limit,$offset);
}
}
我的看法是:
<div class="col-md-12 courses_page_btn2">
<nav>
<ul class="pagination">
<li><a><?php echo $this->pagination->create_links(); ?> </a></li>
</ul>
</nav>
</div>
首先,在routes文件中,route from courses/category/(:any)设置为route to courses/all_courses/$1,但控制器的all_courses方法有第二个参数。所以你需要做点什么。我猜,由于您的分页使用的是URI段4,因此您需要如下调整您的路由:
$route['courses/category/(:any)/(:num)'] = 'courses/all_courses/$1/$2';
该路由的问题是,如果没有(:num),那么您将得到404。在大多数分页方案中,您希望它默认为1(第一页)。考虑这条路线:< /P>
$route['courses/category/(.+)'] = function ($x, $y = 1)
{
return 'courses/all_courses/' . $x . '/' . $y;
};
这将路由到您的all_courses方法,并提供这两个参数,即使您忽略了第二个参数
此分页对我来说适用于该路线:
public function all_courses( $x, $y )
{
$this->load->helper('url');
$this->load->library('pagination');
$pconfig['base_url'] = base_url() . 'courses/category/'.$x;
$pconfig['total_rows'] = 10;
$pconfig['per_page'] = 2;
$pconfig['uri_segment'] = 4;
$this->pagination->initialize($pconfig);
echo $this->pagination->create_links();
}
昨天我回答了一个CodeIgniter分页问题,我想如果你读了我的答案,它可能也适用于这里。CodeIgniter分页非常容易,如果您让它变得容易:它没有帮助:(根据您的代码和评论,听起来您对PHP和CodeIgniter的理解可能还不够。我建议您返回并阅读《用户指南》中关于分页的整个页面。看看这里,您可能还需要创建一些路由检查此链接可能对您有帮助,但我没有得到任何帮助。我是否应该编写第二个code也是,还是第一个好?还有一个问题。如果这个分页在最后的第三页显示记录,它在顶部的第四页显示相同的元素。我如何解决它?另外,当我单击第三页时,它会转到第四页,这与你的问题真的不相关。你问你为什么得到404。我解决了这个问题吗?如果是这样的话,你应该考虑接受我的回答,然后针对那个特定的需要开始一个新的问题。