gpt4 book ai didi

php - 分页不正确显示页码 Codeigniter

转载 作者:可可西里 更新时间:2023-11-01 13:35:54 25 4
gpt4 key购买 nike

我的 Controller 函数

function test($start_from = 0)
{
$this->load->library('pagination');

$data = array();

$per_page = 3;
$total = $this->activity_model->count_by();

$config['base_url'] = base_url() . 'test';
$config['total_rows'] = $total;
$config['per_page'] = $per_page;
$config['uri_segment'] = 2;
$config['num_links'] = 2;
$config['use_page_numbers'] = TRUE;

$data['follow'] = $this->activity_model->get($per_page, $start_from);

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

$data['pagination'] = $this->pagination->create_links();

$this->load->view('front_end/test' ,$data);
}

我的路线:

 $route['test'] = "user_activity/test";
$route['test/(:any)'] = "user_activity/test/$1";

型号:

 function get($limit,$start_from)
{
$sql = "SELECT * FROM user_follow LIMIT $start_from, $limit";

$query = $this->db->query($sql);
return $query->result_array();
}

问题是我有分页 1,2,3,4,5.... 并且在每一页中我显示 3 个项目。我想在 url 中这样做,它显示我的页码 1,2,3,4,5

当我点击第二页 url 时显示 3当我点击第三页 url 时显示 6 等等 +3

这可能吗,我花了几个小时在互联网上寻找建议,但据我所知什么都没有.

也许您可以建议任何图书馆?

最佳答案

我设法在不修改类的情况下做到了这一点。最好的方法是复制分页类,进行更改并使用它。这样如果你更新 CI,你就不会丢失修改。这是我在不修改类的情况下的解决方案。

首先,我想说的是,仅使用配置选项 $config['use_page_numbers'] = TRUE 也能达到目的,但并非完全如此。我发现仅使用此选项无法正常工作的情况如下:
如果您尝试手动编辑 url 栏页面,它会将它们视为偏移量而不是页面,如果您尝试使用“prev”链接从第 2 页返回到第 1 页,它也会将页码视为偏移量。

代码:

$config['base_url'] = base_url('my/url/page');
$config['total_rows'] = count($this->my_model->get_all());
$config['per_page'] = 2;
$config['use_page_numbers'] = TRUE;
$config['uri_segment'] = 4;

//i'm looading the pagination in the constuctor so just init here
$this->pagination->initialize($config);

if($this->uri->segment(4) > 0)
$offset = ($this->uri->segment(4) + 0)*$config['per_page'] - $config['per_page'];
else
$offset = $this->uri->segment(4);
//you should modify the method in the model to accept limit and offset or make another function - your choice
$data['my_data'] = $this->my_model->get_all($config['per_page'], $offset);

这边
page = false (my/url) or (my/url/page) - 基本上如果第 4 个 uri 段是假的,
page = 0 (my/url/page/0),

page = 1 (my/url/page/1)

将全部显示第一页,然后其他链接将正常工作。我也在验证页面,例如 - 如果有人想输入 (my/url/page/2323) 这将引发错误,在模型中你应该检查结果是否为假,如果是, Controller 应该显示错误页什么的。希望这会有所帮助。

关于php - 分页不正确显示页码 Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9046149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com