Codeigniter分页显示我在最后一页

时间:2017-07-13 00:36:13

标签: php codeigniter codeigniter-3

所以这就是我之前所拥有的。如果我去ciblog / categories / posts / 5 /,它会带我到一个页面,显示所有帖子的id为5的类别。

这就是我想要做的。我想去ciblog / categories / posts / 5,它会显示5个帖子让我们说。然后,当我去ciblog / categories / posts / 5/3时,它将偏移3,所以现在我有接下来的3个帖子。

目前我有4个帖子,仅供测试。如果我直接通过我的网址去ciblog / categories / posts / 5它显示3个帖子,如果我去ciblog / categories / posts / 5/3它显示我的另一个帖子,所以我得到的帖子数量是根据网址更正。

但是在底部它始终显示我在第2页。当我使用F12并查看元素时,我的分页链接显示ciblog / categories / posts / 5 所以它最后没有添加数字

以下是我对此页面的分页所拥有的内容。我使用了print_r,$ config中的所有内容都是正确的。

public function posts($id, $offset=0){

    $category = $this->category_model->get_category($id);

    if(empty($category))
    {
        show_404();
    }
    $config['base_url'] = base_url().'categories/posts/'.$id;
    $config['total_rows'] = $this->post_model->get_posts_by_category_count($id);
    $config['per_page'] = 3;
    $config['uri_segment'] = 3;
    $config['attributes'] = array('class' => 'pagination-link');
    $this->pagination->initialize($config);

    $data['title'] = $category->name;
    $data['posts'] = $this->post_model->get_posts_by_category($id,$config['per_page'],$offset);

    $this->load->view('templates/header');
    $this->load->view('posts/index', $data);
    $this->load->view('templates/footer');

}

路线:

$route['categories/posts/(:num)/(:num)'] = 'categories/posts/$1/$2';

参考:

我一直关注这里的教程:https://www.youtube.com/watch?v=WoQTjJepDWM&index=8&list=PLillGF-RfqbaP_71rOyChhjeK1swokUIS 本教程的代码位于:https://github.com/bradtraversy/ciblog

我现在正在加入这个。我所做的唯一改变如上所示

1 个答案:

答案 0 :(得分:0)

$config['base_url'] = base_url().'categories/posts/'. $id . '/' . $offset;
$config['uri_segment'] = 4;

因为你的分页取决于偏移而不是类别的id,所以你应该让它找到uri_segment 4的偏移量,你的base_url必须发送一个偏移变量来找到偏移量。