Номер страницы разбивка url на страницы CodeIgniter

#codeigniter #url #pagination

#codeigniter #url #Разбивка на страницы

Вопрос:

Я использую разбивку на страницы 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  
} ?>
 

Ответ №1:

Сначала вам нужна другая конфигурация:

 $config['use_page_numbers'] = TRUE;
 

Затем вам нужно изменить способ работы вашей переменной страницы.

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

Итак, теперь вы говорите, что ваше смещение будет равно странице url, умноженной на смещение.

Все остальное должно работать точно так же.

Комментарии:

1. Спасибо, когда я перехожу со страницы 1 на страницу 2, все в порядке, но когда я перехожу с любой другой страницы, кроме страницы 1, все равно считаю 10, 15, 20 в URL. Это решается только на первой странице.

2. Это странно, возможно, у вас что-то еще изменило вашу нумерацию страниц, потому что в документах указано: $config[‘use_page_numbers’] = TRUE; По умолчанию сегмент URI будет использовать начальный индекс для элементов, которые вы разбиваете на страницы. Если вы предпочитаете показывать фактический номер страницы, установите для этого значение TRUE. Больше информации здесь: codeigniter.com/userguide3/libraries /…