【问题标题】:Page number url pagination CodeIgniter页码 url 分页 CodeIgniter
【发布时间】:2021-01-18 08:47:49
【问题描述】:

我使用分页 CodeIgniter。我想从 url 中删除页码或显示页码 1、2、3 而不是 5、10、15。我该怎么做,请帮助我,我是 CodeIgniter 的初学者。 谢谢

这是我在控制器中的操作

class Wiki_egypt extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->helper("url");
        $this->load->model('Tours_model');
        $this->load->model('Wiki_egypt_model');
        $this->load->model('Meta_model');
        $this->load->library("pagination");
    }   



    public function Wikipedia_egypt() {
        $config = array();
        
        $config["base_url"] = base_url() . "/wikipedia-egypt";
        $config["total_rows"] = $this->Wiki_egypt_model->record_count();
        $config["per_page"] = 5;
        $config["uri_segment"] = 2;
        $config['num_links'] = 3;
        
        
        $this->pagination->initialize($config);
        $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
        
        $data["wikis"] = $this->Wiki_egypt_model->
            fetch_departments($config["per_page"], $page);
        $data["links"] = $this->pagination->create_links();
        $data['meta_tags'] =  $this->Meta_model->meta_wikis_eg();
        
        $this->load->view("Header", $data);
        $this->load->view("Nav", $data);
        $this->load->view("wiki_egypt/wikieg", $data);
        $this->load->view("Footer");
    }
 }

这是我在模型中的操作

public function record_count() {
    return $this->db->count_all("wiki_egypt");
}
public function fetch_departments($limit, $start) {
    $this->db->limit($limit, $start);
    $query = $this->db->order_by('id', 'DESC')->get("wiki_egypt");
    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $data[] = $row;
        }
        return $data;
    }
    return false;
}

这是我在视图中的操作

<?php echo $links; ?>

<?php
foreach($wikis as $row)
 {
?>

<?php  
} ?>

【问题讨论】:

    标签: codeigniter url pagination


    【解决方案1】:

    首先你需要另一个配置:

    $config['use_page_numbers'] = TRUE;
    

    那么你需要改变你的页面变量的工作方式。

    $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 1;
    $page = $config['per_page'] * $page;
    

    所以现在你说你的偏移量将等于 url 页面乘以偏移量。

    其余的应该都一样。

    【讨论】:

    • 谢谢,当我从第 1 页移动到第 2 页时没问题,但是当我从除第 1 页以外的任何其他页面移动时,URL 上仍然计数为 10、15、20。它只在第一页解决了。
    • 这很奇怪,你可能有别的东西改变了你的分页,因为文档说: $config['use_page_numbers'] = TRUE;默认情况下,URI 段将使用您正在分页的项目的起始索引。如果您希望显示实际页码,请将其设置为 TRUE。更多信息在这里:codeigniter.com/userguide3/libraries/…
    猜你喜欢
    • 2012-04-27
    • 2012-11-07
    • 2012-02-20
    • 2015-04-27
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多