当我在分页上点击下一页时,404 错误 运行

When I click to the next page on pagination, 404 error run

我试图在 CodeIgniter 中进行分页,但我猜我做错了什么。

我的代码如下。

blog_model

function posts($cat_id='')
{
    $config['base_url']     = 'http://example.com/blog';
    $config['total_rows']   = 3;
    $config['per_page']     = 1;
    $config['num_links']    = 20;

    $this->pagination->initialize($config);

    if($cat_id) $this->db->where('cat_id',$cat_id);
    $query = $this->db->get('posts', $config['per_page'], $this->uri->segment(3));
    return $query->result();
}

blog_view

<?php echo $this->pagination->create_links(); ?>

CI 中的分页可能会很棘手。 分页只是构造链接,您仍然需要为数据库查询正确构造 limitoffset

您必须将页码从 URL

传递到您的函数中
function posts($cat_id='', $page = FALSE)
{
    $config['base_url']     = 'http://example.com/blog';
    $config['total_rows']   = 3;
    $config['per_page']     = 1;
    $config['num_links']    = 20;
    $config['uri_segment']  = 3; // <-  verify this one

    $this->pagination->initialize($config);

    // set the page to 1 if the page is missing from the URL
    $page   = ($page === FALSE ? 1 : $page); 

    // calculate the offset for the query
    $offset = ($page - 1 ) * $config['per_page'];

    if($cat_id) $this->db->where('cat_id',$cat_id);
    $query = $this->db->get('posts', $config['per_page'], $offset);
    return $query->result();
}

根据评论编辑:

我也不确定您的第 3 段页码位置是否正确。如果它是 /blog/posts/cat_id/1,那么页码(您的偏移量)位于段号 4。